/*
 * ============================================================================
 * Licensed Materials - Property of IBM
 * Project  Zero
 *
 * (C) Copyright IBM Corp. 2007  All Rights Reserved.
 *
 * US Government Users Restricted Rights - Use, duplication or disclosure
 * restricted by GSA ADP Schedule Contract with IBM Corp.
 * ============================================================================
 * Copyright (c) 1999 - 2006 The PHP Group. All rights reserved.
 * ============================================================================
 */
package com.ibm.p8.engine.parser.core;

//////////////////////////////////////////////////////////////////
//                                                              //
//                 IMPORTANT WARNING                            //
//                                                              //
//   This file was auto-generated by the LPG Eclipse Tooling.   //
//       Do not edit this file. It will be overwritten.         //
//                                                              //
//////////////////////////////////////////////////////////////////

import java.util.HashSet;

/**
 * Represent a rule in a grammar. Instances of this class are created by the parser
 * and are added to Ast nodes and can be used to resolve syntactical ambiguities for code-gen.
 *
 */
public abstract class Rule {
	private static HashSet<String> nonTerminals;
	/**
	 * Get the left hand side.
 	 * @return the lhs
 	 */
	public abstract String getLhs();
	/**
	 * Get the size.
	 * @return int size
	 */
	public abstract int getSize();
	/**
	 * Get the number.
	 * @return - int the number.
	 */
	public abstract int getNumber();
	/**
	 * Get a right hand side.
	 * @param n - the index
	 * @return - the rhs as an int.
	 */
	public abstract String getRhs(int n);
	/**
	 * 
	 * @param rhsNumber - the rhs concerned.
 	 * @return - bool true if the rhs is a number.
	 */
	public boolean isTerminal(int rhsNumber) {
		String name = getRhs(rhsNumber);
		return !nonTerminals.contains(name);
	}

	private static Rule rule1 = new Rule1();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule1() {
		return rule1;
	}
	private static Rule rule2 = new Rule2();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule2() {
		return rule2;
	}
	private static Rule rule3 = new Rule3();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule3() {
		return rule3;
	}
	private static Rule rule4 = new Rule4();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule4() {
		return rule4;
	}
	private static Rule rule5 = new Rule5();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule5() {
		return rule5;
	}
	private static Rule rule6 = new Rule6();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule6() {
		return rule6;
	}
	private static Rule rule7 = new Rule7();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule7() {
		return rule7;
	}
	private static Rule rule8 = new Rule8();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule8() {
		return rule8;
	}
	private static Rule rule9 = new Rule9();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule9() {
		return rule9;
	}
	private static Rule rule10 = new Rule10();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule10() {
		return rule10;
	}
	private static Rule rule11 = new Rule11();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule11() {
		return rule11;
	}
	private static Rule rule12 = new Rule12();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule12() {
		return rule12;
	}
	private static Rule rule13 = new Rule13();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule13() {
		return rule13;
	}
	private static Rule rule14 = new Rule14();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule14() {
		return rule14;
	}
	private static Rule rule15 = new Rule15();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule15() {
		return rule15;
	}
	private static Rule rule16 = new Rule16();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule16() {
		return rule16;
	}
	private static Rule rule17 = new Rule17();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule17() {
		return rule17;
	}
	private static Rule rule18 = new Rule18();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule18() {
		return rule18;
	}
	private static Rule rule19 = new Rule19();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule19() {
		return rule19;
	}
	private static Rule rule20 = new Rule20();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule20() {
		return rule20;
	}
	private static Rule rule21 = new Rule21();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule21() {
		return rule21;
	}
	private static Rule rule22 = new Rule22();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule22() {
		return rule22;
	}
	private static Rule rule23 = new Rule23();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule23() {
		return rule23;
	}
	private static Rule rule24 = new Rule24();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule24() {
		return rule24;
	}
	private static Rule rule25 = new Rule25();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule25() {
		return rule25;
	}
	private static Rule rule26 = new Rule26();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule26() {
		return rule26;
	}
	private static Rule rule27 = new Rule27();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule27() {
		return rule27;
	}
	private static Rule rule28 = new Rule28();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule28() {
		return rule28;
	}
	private static Rule rule29 = new Rule29();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule29() {
		return rule29;
	}
	private static Rule rule30 = new Rule30();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule30() {
		return rule30;
	}
	private static Rule rule31 = new Rule31();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule31() {
		return rule31;
	}
	private static Rule rule32 = new Rule32();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule32() {
		return rule32;
	}
	private static Rule rule33 = new Rule33();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule33() {
		return rule33;
	}
	private static Rule rule34 = new Rule34();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule34() {
		return rule34;
	}
	private static Rule rule35 = new Rule35();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule35() {
		return rule35;
	}
	private static Rule rule36 = new Rule36();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule36() {
		return rule36;
	}
	private static Rule rule37 = new Rule37();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule37() {
		return rule37;
	}
	private static Rule rule38 = new Rule38();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule38() {
		return rule38;
	}
	private static Rule rule39 = new Rule39();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule39() {
		return rule39;
	}
	private static Rule rule40 = new Rule40();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule40() {
		return rule40;
	}
	private static Rule rule41 = new Rule41();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule41() {
		return rule41;
	}
	private static Rule rule42 = new Rule42();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule42() {
		return rule42;
	}
	private static Rule rule43 = new Rule43();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule43() {
		return rule43;
	}
	private static Rule rule44 = new Rule44();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule44() {
		return rule44;
	}
	private static Rule rule45 = new Rule45();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule45() {
		return rule45;
	}
	private static Rule rule46 = new Rule46();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule46() {
		return rule46;
	}
	private static Rule rule47 = new Rule47();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule47() {
		return rule47;
	}
	private static Rule rule48 = new Rule48();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule48() {
		return rule48;
	}
	private static Rule rule49 = new Rule49();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule49() {
		return rule49;
	}
	private static Rule rule50 = new Rule50();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule50() {
		return rule50;
	}
	private static Rule rule51 = new Rule51();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule51() {
		return rule51;
	}
	private static Rule rule52 = new Rule52();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule52() {
		return rule52;
	}
	private static Rule rule53 = new Rule53();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule53() {
		return rule53;
	}
	private static Rule rule54 = new Rule54();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule54() {
		return rule54;
	}
	private static Rule rule55 = new Rule55();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule55() {
		return rule55;
	}
	private static Rule rule56 = new Rule56();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule56() {
		return rule56;
	}
	private static Rule rule57 = new Rule57();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule57() {
		return rule57;
	}
	private static Rule rule58 = new Rule58();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule58() {
		return rule58;
	}
	private static Rule rule59 = new Rule59();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule59() {
		return rule59;
	}
	private static Rule rule60 = new Rule60();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule60() {
		return rule60;
	}
	private static Rule rule61 = new Rule61();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule61() {
		return rule61;
	}
	private static Rule rule62 = new Rule62();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule62() {
		return rule62;
	}
	private static Rule rule63 = new Rule63();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule63() {
		return rule63;
	}
	private static Rule rule64 = new Rule64();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule64() {
		return rule64;
	}
	private static Rule rule65 = new Rule65();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule65() {
		return rule65;
	}
	private static Rule rule66 = new Rule66();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule66() {
		return rule66;
	}
	private static Rule rule67 = new Rule67();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule67() {
		return rule67;
	}
	private static Rule rule68 = new Rule68();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule68() {
		return rule68;
	}
	private static Rule rule69 = new Rule69();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule69() {
		return rule69;
	}
	private static Rule rule70 = new Rule70();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule70() {
		return rule70;
	}
	private static Rule rule71 = new Rule71();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule71() {
		return rule71;
	}
	private static Rule rule72 = new Rule72();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule72() {
		return rule72;
	}
	private static Rule rule73 = new Rule73();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule73() {
		return rule73;
	}
	private static Rule rule74 = new Rule74();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule74() {
		return rule74;
	}
	private static Rule rule75 = new Rule75();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule75() {
		return rule75;
	}
	private static Rule rule76 = new Rule76();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule76() {
		return rule76;
	}
	private static Rule rule77 = new Rule77();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule77() {
		return rule77;
	}
	private static Rule rule78 = new Rule78();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule78() {
		return rule78;
	}
	private static Rule rule79 = new Rule79();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule79() {
		return rule79;
	}
	private static Rule rule80 = new Rule80();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule80() {
		return rule80;
	}
	private static Rule rule81 = new Rule81();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule81() {
		return rule81;
	}
	private static Rule rule82 = new Rule82();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule82() {
		return rule82;
	}
	private static Rule rule83 = new Rule83();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule83() {
		return rule83;
	}
	private static Rule rule84 = new Rule84();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule84() {
		return rule84;
	}
	private static Rule rule85 = new Rule85();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule85() {
		return rule85;
	}
	private static Rule rule86 = new Rule86();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule86() {
		return rule86;
	}
	private static Rule rule87 = new Rule87();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule87() {
		return rule87;
	}
	private static Rule rule88 = new Rule88();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule88() {
		return rule88;
	}
	private static Rule rule89 = new Rule89();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule89() {
		return rule89;
	}
	private static Rule rule90 = new Rule90();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule90() {
		return rule90;
	}
	private static Rule rule91 = new Rule91();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule91() {
		return rule91;
	}
	private static Rule rule92 = new Rule92();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule92() {
		return rule92;
	}
	private static Rule rule93 = new Rule93();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule93() {
		return rule93;
	}
	private static Rule rule94 = new Rule94();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule94() {
		return rule94;
	}
	private static Rule rule95 = new Rule95();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule95() {
		return rule95;
	}
	private static Rule rule96 = new Rule96();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule96() {
		return rule96;
	}
	private static Rule rule97 = new Rule97();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule97() {
		return rule97;
	}
	private static Rule rule98 = new Rule98();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule98() {
		return rule98;
	}
	private static Rule rule99 = new Rule99();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule99() {
		return rule99;
	}
	private static Rule rule100 = new Rule100();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule100() {
		return rule100;
	}
	private static Rule rule101 = new Rule101();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule101() {
		return rule101;
	}
	private static Rule rule102 = new Rule102();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule102() {
		return rule102;
	}
	private static Rule rule103 = new Rule103();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule103() {
		return rule103;
	}
	private static Rule rule104 = new Rule104();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule104() {
		return rule104;
	}
	private static Rule rule105 = new Rule105();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule105() {
		return rule105;
	}
	private static Rule rule106 = new Rule106();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule106() {
		return rule106;
	}
	private static Rule rule107 = new Rule107();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule107() {
		return rule107;
	}
	private static Rule rule108 = new Rule108();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule108() {
		return rule108;
	}
	private static Rule rule109 = new Rule109();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule109() {
		return rule109;
	}
	private static Rule rule110 = new Rule110();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule110() {
		return rule110;
	}
	private static Rule rule111 = new Rule111();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule111() {
		return rule111;
	}
	private static Rule rule112 = new Rule112();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule112() {
		return rule112;
	}
	private static Rule rule113 = new Rule113();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule113() {
		return rule113;
	}
	private static Rule rule114 = new Rule114();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule114() {
		return rule114;
	}
	private static Rule rule115 = new Rule115();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule115() {
		return rule115;
	}
	private static Rule rule116 = new Rule116();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule116() {
		return rule116;
	}
	private static Rule rule117 = new Rule117();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule117() {
		return rule117;
	}
	private static Rule rule118 = new Rule118();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule118() {
		return rule118;
	}
	private static Rule rule119 = new Rule119();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule119() {
		return rule119;
	}
	private static Rule rule120 = new Rule120();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule120() {
		return rule120;
	}
	private static Rule rule121 = new Rule121();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule121() {
		return rule121;
	}
	private static Rule rule122 = new Rule122();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule122() {
		return rule122;
	}
	private static Rule rule123 = new Rule123();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule123() {
		return rule123;
	}
	private static Rule rule124 = new Rule124();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule124() {
		return rule124;
	}
	private static Rule rule125 = new Rule125();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule125() {
		return rule125;
	}
	private static Rule rule126 = new Rule126();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule126() {
		return rule126;
	}
	private static Rule rule127 = new Rule127();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule127() {
		return rule127;
	}
	private static Rule rule128 = new Rule128();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule128() {
		return rule128;
	}
	private static Rule rule129 = new Rule129();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule129() {
		return rule129;
	}
	private static Rule rule130 = new Rule130();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule130() {
		return rule130;
	}
	private static Rule rule131 = new Rule131();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule131() {
		return rule131;
	}
	private static Rule rule132 = new Rule132();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule132() {
		return rule132;
	}
	private static Rule rule133 = new Rule133();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule133() {
		return rule133;
	}
	private static Rule rule134 = new Rule134();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule134() {
		return rule134;
	}
	private static Rule rule135 = new Rule135();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule135() {
		return rule135;
	}
	private static Rule rule136 = new Rule136();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule136() {
		return rule136;
	}
	private static Rule rule137 = new Rule137();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule137() {
		return rule137;
	}
	private static Rule rule138 = new Rule138();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule138() {
		return rule138;
	}
	private static Rule rule139 = new Rule139();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule139() {
		return rule139;
	}
	private static Rule rule140 = new Rule140();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule140() {
		return rule140;
	}
	private static Rule rule141 = new Rule141();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule141() {
		return rule141;
	}
	private static Rule rule142 = new Rule142();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule142() {
		return rule142;
	}
	private static Rule rule143 = new Rule143();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule143() {
		return rule143;
	}
	private static Rule rule144 = new Rule144();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule144() {
		return rule144;
	}
	private static Rule rule145 = new Rule145();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule145() {
		return rule145;
	}
	private static Rule rule146 = new Rule146();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule146() {
		return rule146;
	}
	private static Rule rule147 = new Rule147();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule147() {
		return rule147;
	}
	private static Rule rule148 = new Rule148();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule148() {
		return rule148;
	}
	private static Rule rule149 = new Rule149();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule149() {
		return rule149;
	}
	private static Rule rule150 = new Rule150();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule150() {
		return rule150;
	}
	private static Rule rule151 = new Rule151();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule151() {
		return rule151;
	}
	private static Rule rule152 = new Rule152();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule152() {
		return rule152;
	}
	private static Rule rule153 = new Rule153();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule153() {
		return rule153;
	}
	private static Rule rule154 = new Rule154();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule154() {
		return rule154;
	}
	private static Rule rule155 = new Rule155();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule155() {
		return rule155;
	}
	private static Rule rule156 = new Rule156();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule156() {
		return rule156;
	}
	private static Rule rule157 = new Rule157();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule157() {
		return rule157;
	}
	private static Rule rule158 = new Rule158();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule158() {
		return rule158;
	}
	private static Rule rule159 = new Rule159();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule159() {
		return rule159;
	}
	private static Rule rule160 = new Rule160();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule160() {
		return rule160;
	}
	private static Rule rule161 = new Rule161();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule161() {
		return rule161;
	}
	private static Rule rule162 = new Rule162();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule162() {
		return rule162;
	}
	private static Rule rule163 = new Rule163();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule163() {
		return rule163;
	}
	private static Rule rule164 = new Rule164();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule164() {
		return rule164;
	}
	private static Rule rule165 = new Rule165();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule165() {
		return rule165;
	}
	private static Rule rule166 = new Rule166();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule166() {
		return rule166;
	}
	private static Rule rule167 = new Rule167();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule167() {
		return rule167;
	}
	private static Rule rule168 = new Rule168();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule168() {
		return rule168;
	}
	private static Rule rule169 = new Rule169();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule169() {
		return rule169;
	}
	private static Rule rule170 = new Rule170();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule170() {
		return rule170;
	}
	private static Rule rule171 = new Rule171();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule171() {
		return rule171;
	}
	private static Rule rule172 = new Rule172();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule172() {
		return rule172;
	}
	private static Rule rule173 = new Rule173();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule173() {
		return rule173;
	}
	private static Rule rule174 = new Rule174();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule174() {
		return rule174;
	}
	private static Rule rule175 = new Rule175();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule175() {
		return rule175;
	}
	private static Rule rule176 = new Rule176();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule176() {
		return rule176;
	}
	private static Rule rule177 = new Rule177();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule177() {
		return rule177;
	}
	private static Rule rule178 = new Rule178();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule178() {
		return rule178;
	}
	private static Rule rule179 = new Rule179();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule179() {
		return rule179;
	}
	private static Rule rule180 = new Rule180();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule180() {
		return rule180;
	}
	private static Rule rule181 = new Rule181();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule181() {
		return rule181;
	}
	private static Rule rule182 = new Rule182();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule182() {
		return rule182;
	}
	private static Rule rule183 = new Rule183();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule183() {
		return rule183;
	}
	private static Rule rule184 = new Rule184();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule184() {
		return rule184;
	}
	private static Rule rule185 = new Rule185();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule185() {
		return rule185;
	}
	private static Rule rule186 = new Rule186();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule186() {
		return rule186;
	}
	private static Rule rule187 = new Rule187();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule187() {
		return rule187;
	}
	private static Rule rule188 = new Rule188();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule188() {
		return rule188;
	}
	private static Rule rule189 = new Rule189();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule189() {
		return rule189;
	}
	private static Rule rule190 = new Rule190();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule190() {
		return rule190;
	}
	private static Rule rule191 = new Rule191();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule191() {
		return rule191;
	}
	private static Rule rule192 = new Rule192();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule192() {
		return rule192;
	}
	private static Rule rule193 = new Rule193();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule193() {
		return rule193;
	}
	private static Rule rule194 = new Rule194();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule194() {
		return rule194;
	}
	private static Rule rule195 = new Rule195();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule195() {
		return rule195;
	}
	private static Rule rule196 = new Rule196();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule196() {
		return rule196;
	}
	private static Rule rule197 = new Rule197();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule197() {
		return rule197;
	}
	private static Rule rule198 = new Rule198();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule198() {
		return rule198;
	}
	private static Rule rule199 = new Rule199();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule199() {
		return rule199;
	}
	private static Rule rule200 = new Rule200();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule200() {
		return rule200;
	}
	private static Rule rule201 = new Rule201();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule201() {
		return rule201;
	}
	private static Rule rule202 = new Rule202();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule202() {
		return rule202;
	}
	private static Rule rule203 = new Rule203();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule203() {
		return rule203;
	}
	private static Rule rule204 = new Rule204();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule204() {
		return rule204;
	}
	private static Rule rule205 = new Rule205();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule205() {
		return rule205;
	}
	private static Rule rule206 = new Rule206();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule206() {
		return rule206;
	}
	private static Rule rule207 = new Rule207();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule207() {
		return rule207;
	}
	private static Rule rule208 = new Rule208();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule208() {
		return rule208;
	}
	private static Rule rule209 = new Rule209();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule209() {
		return rule209;
	}
	private static Rule rule210 = new Rule210();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule210() {
		return rule210;
	}
	private static Rule rule211 = new Rule211();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule211() {
		return rule211;
	}
	private static Rule rule212 = new Rule212();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule212() {
		return rule212;
	}
	private static Rule rule213 = new Rule213();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule213() {
		return rule213;
	}
	private static Rule rule214 = new Rule214();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule214() {
		return rule214;
	}
	private static Rule rule215 = new Rule215();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule215() {
		return rule215;
	}
	private static Rule rule216 = new Rule216();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule216() {
		return rule216;
	}
	private static Rule rule217 = new Rule217();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule217() {
		return rule217;
	}
	private static Rule rule218 = new Rule218();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule218() {
		return rule218;
	}
	private static Rule rule219 = new Rule219();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule219() {
		return rule219;
	}
	private static Rule rule220 = new Rule220();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule220() {
		return rule220;
	}
	private static Rule rule221 = new Rule221();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule221() {
		return rule221;
	}
	private static Rule rule222 = new Rule222();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule222() {
		return rule222;
	}
	private static Rule rule223 = new Rule223();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule223() {
		return rule223;
	}
	private static Rule rule224 = new Rule224();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule224() {
		return rule224;
	}
	private static Rule rule225 = new Rule225();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule225() {
		return rule225;
	}
	private static Rule rule226 = new Rule226();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule226() {
		return rule226;
	}
	private static Rule rule227 = new Rule227();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule227() {
		return rule227;
	}
	private static Rule rule228 = new Rule228();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule228() {
		return rule228;
	}
	private static Rule rule229 = new Rule229();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule229() {
		return rule229;
	}
	private static Rule rule230 = new Rule230();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule230() {
		return rule230;
	}
	private static Rule rule231 = new Rule231();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule231() {
		return rule231;
	}
	private static Rule rule232 = new Rule232();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule232() {
		return rule232;
	}
	private static Rule rule233 = new Rule233();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule233() {
		return rule233;
	}
	private static Rule rule234 = new Rule234();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule234() {
		return rule234;
	}
	private static Rule rule235 = new Rule235();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule235() {
		return rule235;
	}
	private static Rule rule236 = new Rule236();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule236() {
		return rule236;
	}
	private static Rule rule237 = new Rule237();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule237() {
		return rule237;
	}
	private static Rule rule238 = new Rule238();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule238() {
		return rule238;
	}
	private static Rule rule239 = new Rule239();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule239() {
		return rule239;
	}
	private static Rule rule240 = new Rule240();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule240() {
		return rule240;
	}
	private static Rule rule241 = new Rule241();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule241() {
		return rule241;
	}
	private static Rule rule242 = new Rule242();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule242() {
		return rule242;
	}
	private static Rule rule243 = new Rule243();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule243() {
		return rule243;
	}
	private static Rule rule244 = new Rule244();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule244() {
		return rule244;
	}
	private static Rule rule245 = new Rule245();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule245() {
		return rule245;
	}
	private static Rule rule246 = new Rule246();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule246() {
		return rule246;
	}
	private static Rule rule247 = new Rule247();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule247() {
		return rule247;
	}
	private static Rule rule248 = new Rule248();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule248() {
		return rule248;
	}
	private static Rule rule249 = new Rule249();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule249() {
		return rule249;
	}
	private static Rule rule250 = new Rule250();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule250() {
		return rule250;
	}
	private static Rule rule251 = new Rule251();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule251() {
		return rule251;
	}
	private static Rule rule252 = new Rule252();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule252() {
		return rule252;
	}
	private static Rule rule253 = new Rule253();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule253() {
		return rule253;
	}
	private static Rule rule254 = new Rule254();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule254() {
		return rule254;
	}
	private static Rule rule255 = new Rule255();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule255() {
		return rule255;
	}
	private static Rule rule256 = new Rule256();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule256() {
		return rule256;
	}
	private static Rule rule257 = new Rule257();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule257() {
		return rule257;
	}
	private static Rule rule258 = new Rule258();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule258() {
		return rule258;
	}
	private static Rule rule259 = new Rule259();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule259() {
		return rule259;
	}
	private static Rule rule260 = new Rule260();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule260() {
		return rule260;
	}
	private static Rule rule261 = new Rule261();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule261() {
		return rule261;
	}
	private static Rule rule262 = new Rule262();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule262() {
		return rule262;
	}
	private static Rule rule263 = new Rule263();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule263() {
		return rule263;
	}
	private static Rule rule264 = new Rule264();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule264() {
		return rule264;
	}
	private static Rule rule265 = new Rule265();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule265() {
		return rule265;
	}
	private static Rule rule266 = new Rule266();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule266() {
		return rule266;
	}
	private static Rule rule267 = new Rule267();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule267() {
		return rule267;
	}
	private static Rule rule268 = new Rule268();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule268() {
		return rule268;
	}
	private static Rule rule269 = new Rule269();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule269() {
		return rule269;
	}
	private static Rule rule270 = new Rule270();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule270() {
		return rule270;
	}
	private static Rule rule271 = new Rule271();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule271() {
		return rule271;
	}
	private static Rule rule272 = new Rule272();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule272() {
		return rule272;
	}
	private static Rule rule273 = new Rule273();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule273() {
		return rule273;
	}
	private static Rule rule274 = new Rule274();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule274() {
		return rule274;
	}
	private static Rule rule275 = new Rule275();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule275() {
		return rule275;
	}
	private static Rule rule276 = new Rule276();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule276() {
		return rule276;
	}
	private static Rule rule277 = new Rule277();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule277() {
		return rule277;
	}
	private static Rule rule278 = new Rule278();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule278() {
		return rule278;
	}
	private static Rule rule279 = new Rule279();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule279() {
		return rule279;
	}
	private static Rule rule280 = new Rule280();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule280() {
		return rule280;
	}
	private static Rule rule281 = new Rule281();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule281() {
		return rule281;
	}
	private static Rule rule282 = new Rule282();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule282() {
		return rule282;
	}
	private static Rule rule283 = new Rule283();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule283() {
		return rule283;
	}
	private static Rule rule284 = new Rule284();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule284() {
		return rule284;
	}
	private static Rule rule285 = new Rule285();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule285() {
		return rule285;
	}
	private static Rule rule286 = new Rule286();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule286() {
		return rule286;
	}
	private static Rule rule287 = new Rule287();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule287() {
		return rule287;
	}
	private static Rule rule288 = new Rule288();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule288() {
		return rule288;
	}
	private static Rule rule289 = new Rule289();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule289() {
		return rule289;
	}
	private static Rule rule290 = new Rule290();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule290() {
		return rule290;
	}
	private static Rule rule291 = new Rule291();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule291() {
		return rule291;
	}
	private static Rule rule292 = new Rule292();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule292() {
		return rule292;
	}
	private static Rule rule293 = new Rule293();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule293() {
		return rule293;
	}
	private static Rule rule294 = new Rule294();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule294() {
		return rule294;
	}
	private static Rule rule295 = new Rule295();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule295() {
		return rule295;
	}
	private static Rule rule296 = new Rule296();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule296() {
		return rule296;
	}
	private static Rule rule297 = new Rule297();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule297() {
		return rule297;
	}
	private static Rule rule298 = new Rule298();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule298() {
		return rule298;
	}
	private static Rule rule299 = new Rule299();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule299() {
		return rule299;
	}
	private static Rule rule300 = new Rule300();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule300() {
		return rule300;
	}
	private static Rule rule301 = new Rule301();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule301() {
		return rule301;
	}
	private static Rule rule302 = new Rule302();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule302() {
		return rule302;
	}
	private static Rule rule303 = new Rule303();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule303() {
		return rule303;
	}
	private static Rule rule304 = new Rule304();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule304() {
		return rule304;
	}
	private static Rule rule305 = new Rule305();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule305() {
		return rule305;
	}
	private static Rule rule306 = new Rule306();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule306() {
		return rule306;
	}
	private static Rule rule307 = new Rule307();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule307() {
		return rule307;
	}
	private static Rule rule308 = new Rule308();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule308() {
		return rule308;
	}
	private static Rule rule309 = new Rule309();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule309() {
		return rule309;
	}
	private static Rule rule310 = new Rule310();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule310() {
		return rule310;
	}
	private static Rule rule311 = new Rule311();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule311() {
		return rule311;
	}
	private static Rule rule312 = new Rule312();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule312() {
		return rule312;
	}
	private static Rule rule313 = new Rule313();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule313() {
		return rule313;
	}
	private static Rule rule314 = new Rule314();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule314() {
		return rule314;
	}
	private static Rule rule315 = new Rule315();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule315() {
		return rule315;
	}
	private static Rule rule316 = new Rule316();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule316() {
		return rule316;
	}
	private static Rule rule317 = new Rule317();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule317() {
		return rule317;
	}
	private static Rule rule318 = new Rule318();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule318() {
		return rule318;
	}
	private static Rule rule319 = new Rule319();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule319() {
		return rule319;
	}
	private static Rule rule320 = new Rule320();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule320() {
		return rule320;
	}
	private static Rule rule321 = new Rule321();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule321() {
		return rule321;
	}
	private static Rule rule322 = new Rule322();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule322() {
		return rule322;
	}
	private static Rule rule323 = new Rule323();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule323() {
		return rule323;
	}
	private static Rule rule324 = new Rule324();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule324() {
		return rule324;
	}
	private static Rule rule325 = new Rule325();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule325() {
		return rule325;
	}
	private static Rule rule326 = new Rule326();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule326() {
		return rule326;
	}
	private static Rule rule327 = new Rule327();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule327() {
		return rule327;
	}
	private static Rule rule328 = new Rule328();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule328() {
		return rule328;
	}
	private static Rule rule329 = new Rule329();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule329() {
		return rule329;
	}
	private static Rule rule330 = new Rule330();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule330() {
		return rule330;
	}
	private static Rule rule331 = new Rule331();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule331() {
		return rule331;
	}
	private static Rule rule332 = new Rule332();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule332() {
		return rule332;
	}
	private static Rule rule333 = new Rule333();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule333() {
		return rule333;
	}
	private static Rule rule334 = new Rule334();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule334() {
		return rule334;
	}
	private static Rule rule335 = new Rule335();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule335() {
		return rule335;
	}
	private static Rule rule336 = new Rule336();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule336() {
		return rule336;
	}
	private static Rule rule337 = new Rule337();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule337() {
		return rule337;
	}
	private static Rule rule338 = new Rule338();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule338() {
		return rule338;
	}
	private static Rule rule339 = new Rule339();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule339() {
		return rule339;
	}
	private static Rule rule340 = new Rule340();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule340() {
		return rule340;
	}
	private static Rule rule341 = new Rule341();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule341() {
		return rule341;
	}
	private static Rule rule342 = new Rule342();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule342() {
		return rule342;
	}
	private static Rule rule343 = new Rule343();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule343() {
		return rule343;
	}
	private static Rule rule344 = new Rule344();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule344() {
		return rule344;
	}
	private static Rule rule345 = new Rule345();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule345() {
		return rule345;
	}
	private static Rule rule346 = new Rule346();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule346() {
		return rule346;
	}
	private static Rule rule347 = new Rule347();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule347() {
		return rule347;
	}
	private static Rule rule348 = new Rule348();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule348() {
		return rule348;
	}
	private static Rule rule349 = new Rule349();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule349() {
		return rule349;
	}
	private static Rule rule350 = new Rule350();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule350() {
		return rule350;
	}
	private static Rule rule351 = new Rule351();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule351() {
		return rule351;
	}
	private static Rule rule352 = new Rule352();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule352() {
		return rule352;
	}
	private static Rule rule353 = new Rule353();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule353() {
		return rule353;
	}
	private static Rule rule354 = new Rule354();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule354() {
		return rule354;
	}
	private static Rule rule355 = new Rule355();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule355() {
		return rule355;
	}
	private static Rule rule356 = new Rule356();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule356() {
		return rule356;
	}
	private static Rule rule357 = new Rule357();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule357() {
		return rule357;
	}
	private static Rule rule358 = new Rule358();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule358() {
		return rule358;
	}
	private static Rule rule359 = new Rule359();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule359() {
		return rule359;
	}
	private static Rule rule360 = new Rule360();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule360() {
		return rule360;
	}
	private static Rule rule361 = new Rule361();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule361() {
		return rule361;
	}
	private static Rule rule362 = new Rule362();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule362() {
		return rule362;
	}
	private static Rule rule363 = new Rule363();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule363() {
		return rule363;
	}
	private static Rule rule364 = new Rule364();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule364() {
		return rule364;
	}
	private static Rule rule365 = new Rule365();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule365() {
		return rule365;
	}
	private static Rule rule366 = new Rule366();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule366() {
		return rule366;
	}
	private static Rule rule367 = new Rule367();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule367() {
		return rule367;
	}
	private static Rule rule368 = new Rule368();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule368() {
		return rule368;
	}
	private static Rule rule369 = new Rule369();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule369() {
		return rule369;
	}
	private static Rule rule370 = new Rule370();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule370() {
		return rule370;
	}
	private static Rule rule371 = new Rule371();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule371() {
		return rule371;
	}
	private static Rule rule372 = new Rule372();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule372() {
		return rule372;
	}
	private static Rule rule373 = new Rule373();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule373() {
		return rule373;
	}
	private static Rule rule374 = new Rule374();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule374() {
		return rule374;
	}
	private static Rule rule375 = new Rule375();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule375() {
		return rule375;
	}
	private static Rule rule376 = new Rule376();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule376() {
		return rule376;
	}
	private static Rule rule377 = new Rule377();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule377() {
		return rule377;
	}
	private static Rule rule378 = new Rule378();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule378() {
		return rule378;
	}
	private static Rule rule379 = new Rule379();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule379() {
		return rule379;
	}
	private static Rule rule380 = new Rule380();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule380() {
		return rule380;
	}
	private static Rule rule381 = new Rule381();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule381() {
		return rule381;
	}
	private static Rule rule382 = new Rule382();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule382() {
		return rule382;
	}
	private static Rule rule383 = new Rule383();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule383() {
		return rule383;
	}
	private static Rule rule384 = new Rule384();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule384() {
		return rule384;
	}
	private static Rule rule385 = new Rule385();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule385() {
		return rule385;
	}
	private static Rule rule386 = new Rule386();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule386() {
		return rule386;
	}
	private static Rule rule387 = new Rule387();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule387() {
		return rule387;
	}
	private static Rule rule388 = new Rule388();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule388() {
		return rule388;
	}
	private static Rule rule389 = new Rule389();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule389() {
		return rule389;
	}
	private static Rule rule390 = new Rule390();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule390() {
		return rule390;
	}
	private static Rule rule391 = new Rule391();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule391() {
		return rule391;
	}
	private static Rule rule392 = new Rule392();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule392() {
		return rule392;
	}
	private static Rule rule393 = new Rule393();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule393() {
		return rule393;
	}
	private static Rule rule394 = new Rule394();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule394() {
		return rule394;
	}
	private static Rule rule395 = new Rule395();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule395() {
		return rule395;
	}
	private static Rule rule396 = new Rule396();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule396() {
		return rule396;
	}
	private static Rule rule397 = new Rule397();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule397() {
		return rule397;
	}
	private static Rule rule398 = new Rule398();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule398() {
		return rule398;
	}
	private static Rule rule399 = new Rule399();
	/**
	 * Get Rule.
	 * @return the rule.
	 */
	public static Rule getRule399() {
		return rule399;
	}
	private static Rule[] rules = {
		rule1, 
		rule2, 
		rule3, 
		rule4, 
		rule5, 
		rule6, 
		rule7, 
		rule8, 
		rule9, 
		rule10, 
		rule11, 
		rule12, 
		rule13, 
		rule14, 
		rule15, 
		rule16, 
		rule17, 
		rule18, 
		rule19, 
		rule20, 
		rule21, 
		rule22, 
		rule23, 
		rule24, 
		rule25, 
		rule26, 
		rule27, 
		rule28, 
		rule29, 
		rule30, 
		rule31, 
		rule32, 
		rule33, 
		rule34, 
		rule35, 
		rule36, 
		rule37, 
		rule38, 
		rule39, 
		rule40, 
		rule41, 
		rule42, 
		rule43, 
		rule44, 
		rule45, 
		rule46, 
		rule47, 
		rule48, 
		rule49, 
		rule50, 
		rule51, 
		rule52, 
		rule53, 
		rule54, 
		rule55, 
		rule56, 
		rule57, 
		rule58, 
		rule59, 
		rule60, 
		rule61, 
		rule62, 
		rule63, 
		rule64, 
		rule65, 
		rule66, 
		rule67, 
		rule68, 
		rule69, 
		rule70, 
		rule71, 
		rule72, 
		rule73, 
		rule74, 
		rule75, 
		rule76, 
		rule77, 
		rule78, 
		rule79, 
		rule80, 
		rule81, 
		rule82, 
		rule83, 
		rule84, 
		rule85, 
		rule86, 
		rule87, 
		rule88, 
		rule89, 
		rule90, 
		rule91, 
		rule92, 
		rule93, 
		rule94, 
		rule95, 
		rule96, 
		rule97, 
		rule98, 
		rule99, 
		rule100, 
		rule101, 
		rule102, 
		rule103, 
		rule104, 
		rule105, 
		rule106, 
		rule107, 
		rule108, 
		rule109, 
		rule110, 
		rule111, 
		rule112, 
		rule113, 
		rule114, 
		rule115, 
		rule116, 
		rule117, 
		rule118, 
		rule119, 
		rule120, 
		rule121, 
		rule122, 
		rule123, 
		rule124, 
		rule125, 
		rule126, 
		rule127, 
		rule128, 
		rule129, 
		rule130, 
		rule131, 
		rule132, 
		rule133, 
		rule134, 
		rule135, 
		rule136, 
		rule137, 
		rule138, 
		rule139, 
		rule140, 
		rule141, 
		rule142, 
		rule143, 
		rule144, 
		rule145, 
		rule146, 
		rule147, 
		rule148, 
		rule149, 
		rule150, 
		rule151, 
		rule152, 
		rule153, 
		rule154, 
		rule155, 
		rule156, 
		rule157, 
		rule158, 
		rule159, 
		rule160, 
		rule161, 
		rule162, 
		rule163, 
		rule164, 
		rule165, 
		rule166, 
		rule167, 
		rule168, 
		rule169, 
		rule170, 
		rule171, 
		rule172, 
		rule173, 
		rule174, 
		rule175, 
		rule176, 
		rule177, 
		rule178, 
		rule179, 
		rule180, 
		rule181, 
		rule182, 
		rule183, 
		rule184, 
		rule185, 
		rule186, 
		rule187, 
		rule188, 
		rule189, 
		rule190, 
		rule191, 
		rule192, 
		rule193, 
		rule194, 
		rule195, 
		rule196, 
		rule197, 
		rule198, 
		rule199, 
		rule200, 
		rule201, 
		rule202, 
		rule203, 
		rule204, 
		rule205, 
		rule206, 
		rule207, 
		rule208, 
		rule209, 
		rule210, 
		rule211, 
		rule212, 
		rule213, 
		rule214, 
		rule215, 
		rule216, 
		rule217, 
		rule218, 
		rule219, 
		rule220, 
		rule221, 
		rule222, 
		rule223, 
		rule224, 
		rule225, 
		rule226, 
		rule227, 
		rule228, 
		rule229, 
		rule230, 
		rule231, 
		rule232, 
		rule233, 
		rule234, 
		rule235, 
		rule236, 
		rule237, 
		rule238, 
		rule239, 
		rule240, 
		rule241, 
		rule242, 
		rule243, 
		rule244, 
		rule245, 
		rule246, 
		rule247, 
		rule248, 
		rule249, 
		rule250, 
		rule251, 
		rule252, 
		rule253, 
		rule254, 
		rule255, 
		rule256, 
		rule257, 
		rule258, 
		rule259, 
		rule260, 
		rule261, 
		rule262, 
		rule263, 
		rule264, 
		rule265, 
		rule266, 
		rule267, 
		rule268, 
		rule269, 
		rule270, 
		rule271, 
		rule272, 
		rule273, 
		rule274, 
		rule275, 
		rule276, 
		rule277, 
		rule278, 
		rule279, 
		rule280, 
		rule281, 
		rule282, 
		rule283, 
		rule284, 
		rule285, 
		rule286, 
		rule287, 
		rule288, 
		rule289, 
		rule290, 
		rule291, 
		rule292, 
		rule293, 
		rule294, 
		rule295, 
		rule296, 
		rule297, 
		rule298, 
		rule299, 
		rule300, 
		rule301, 
		rule302, 
		rule303, 
		rule304, 
		rule305, 
		rule306, 
		rule307, 
		rule308, 
		rule309, 
		rule310, 
		rule311, 
		rule312, 
		rule313, 
		rule314, 
		rule315, 
		rule316, 
		rule317, 
		rule318, 
		rule319, 
		rule320, 
		rule321, 
		rule322, 
		rule323, 
		rule324, 
		rule325, 
		rule326, 
		rule327, 
		rule328, 
		rule329, 
		rule330, 
		rule331, 
		rule332, 
		rule333, 
		rule334, 
		rule335, 
		rule336, 
		rule337, 
		rule338, 
		rule339, 
		rule340, 
		rule341, 
		rule342, 
		rule343, 
		rule344, 
		rule345, 
		rule346, 
		rule347, 
		rule348, 
		rule349, 
		rule350, 
		rule351, 
		rule352, 
		rule353, 
		rule354, 
		rule355, 
		rule356, 
		rule357, 
		rule358, 
		rule359, 
		rule360, 
		rule361, 
		rule362, 
		rule363, 
		rule364, 
		rule365, 
		rule366, 
		rule367, 
		rule368, 
		rule369, 
		rule370, 
		rule371, 
		rule372, 
		rule373, 
		rule374, 
		rule375, 
		rule376, 
		rule377, 
		rule378, 
		rule379, 
		rule380, 
		rule381, 
		rule382, 
		rule383, 
		rule384, 
		rule385, 
		rule386, 
		rule387, 
		rule388, 
		rule389, 
		rule390, 
		rule391, 
		rule392, 
		rule393, 
		rule394, 
		rule395, 
		rule396, 
		rule397, 
		rule398, 
		rule399, 
	};
	static {
		nonTerminals = new HashSet<String>(100);
		for (int n = 0; n < rules.length; n++) {
			nonTerminals.add(rules[n].getLhs());
		}
	};

}

/**
 *
 */
class Rule1 extends Rule {
	public int getNumber() { return 1; }
	public String getLhs() { return "top_statement_list"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 1: top_statement_list ::= ";
	}
}

/**
 *
 */
class Rule2 extends Rule {
	public int getNumber() { return 2; }
	public String getLhs() { return "top_statement_list"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "top_statement_list_mandatory";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 2: top_statement_list ::= top_statement_list_mandatory ";
	}
}

/**
 *
 */
class Rule3 extends Rule {
	public int getNumber() { return 3; }
	public String getLhs() { return "top_statement_list_mandatory"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "top_statement";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 3: top_statement_list_mandatory ::= top_statement ";
	}
}

/**
 *
 */
class Rule4 extends Rule {
	public int getNumber() { return 4; }
	public String getLhs() { return "top_statement_list_mandatory"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "top_statement_list_mandatory";
            case 1: return "top_statement";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 4: top_statement_list_mandatory ::= top_statement_list_mandatory top_statement ";
	}
}

/**
 *
 */
class Rule5 extends Rule {
	public int getNumber() { return 5; }
	public String getLhs() { return "top_statement"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "statement";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 5: top_statement ::= statement ";
	}
}

/**
 *
 */
class Rule6 extends Rule {
	public int getNumber() { return 6; }
	public String getLhs() { return "top_statement"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "function_declaration_statement";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 6: top_statement ::= function_declaration_statement ";
	}
}

/**
 *
 */
class Rule7 extends Rule {
	public int getNumber() { return 7; }
	public String getLhs() { return "top_statement"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "class_declaration_statement";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 7: top_statement ::= class_declaration_statement ";
	}
}

/**
 *
 */
class Rule8 extends Rule {
	public int getNumber() { return 8; }
	public String getLhs() { return "top_statement"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "halt_compiler_statement";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 8: top_statement ::= halt_compiler_statement ";
	}
}

/**
 *
 */
class Rule9 extends Rule {
	public int getNumber() { return 9; }
	public String getLhs() { return "top_statement"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_DOC_COMMENT";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 9: top_statement ::= T_DOC_COMMENT ";
	}
}

/**
 *
 */
class Rule10 extends Rule {
	public int getNumber() { return 10; }
	public String getLhs() { return "halt_compiler_statement"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_HALT_COMPILER";
            case 1: return "T_LPAR";
            case 2: return "T_RPAR";
            case 3: return "T_SEMICOLON";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 10: halt_compiler_statement ::= T_HALT_COMPILER T_LPAR T_RPAR T_SEMICOLON ";
	}
}

/**
 *
 */
class Rule11 extends Rule {
	public int getNumber() { return 11; }
	public String getLhs() { return "inner_statement_list"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "top_statement_list";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 11: inner_statement_list ::= top_statement_list ";
	}
}

/**
 *
 */
class Rule12 extends Rule {
	public int getNumber() { return 12; }
	public String getLhs() { return "statement"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "unticked_statement";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 12: statement ::= unticked_statement ";
	}
}

/**
 *
 */
class Rule13 extends Rule {
	public int getNumber() { return 13; }
	public String getLhs() { return "unticked_statement"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_CURLY_OPEN";
            case 1: return "inner_statement_list";
            case 2: return "T_CURLY_CLOSE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 13: unticked_statement ::= T_CURLY_OPEN inner_statement_list T_CURLY_CLOSE ";
	}
}

/**
 *
 */
class Rule14 extends Rule {
	public int getNumber() { return 14; }
	public String getLhs() { return "unticked_statement"; }
	public int getSize() { return 7; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_IF";
            case 1: return "T_LPAR";
            case 2: return "expr";
            case 3: return "T_RPAR";
            case 4: return "statement";
            case 5: return "elseif_list";
            case 6: return "else_single";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 6");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 14: unticked_statement ::= T_IF T_LPAR expr T_RPAR statement elseif_list else_single ";
	}
}

/**
 *
 */
class Rule15 extends Rule {
	public int getNumber() { return 15; }
	public String getLhs() { return "unticked_statement"; }
	public int getSize() { return 10; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_IF";
            case 1: return "T_LPAR";
            case 2: return "expr";
            case 3: return "T_RPAR";
            case 4: return "T_COLON";
            case 5: return "inner_statement_list";
            case 6: return "new_elseif_list";
            case 7: return "new_else_single";
            case 8: return "T_ENDIF";
            case 9: return "T_SEMICOLON";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 9");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 15: unticked_statement ::= T_IF T_LPAR expr T_RPAR T_COLON inner_statement_list new_elseif_list new_else_single T_ENDIF T_SEMICOLON ";
	}
}

/**
 *
 */
class Rule16 extends Rule {
	public int getNumber() { return 16; }
	public String getLhs() { return "unticked_statement"; }
	public int getSize() { return 5; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_WHILE";
            case 1: return "T_LPAR";
            case 2: return "expr";
            case 3: return "T_RPAR";
            case 4: return "while_statement";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 4");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 16: unticked_statement ::= T_WHILE T_LPAR expr T_RPAR while_statement ";
	}
}

/**
 *
 */
class Rule17 extends Rule {
	public int getNumber() { return 17; }
	public String getLhs() { return "unticked_statement"; }
	public int getSize() { return 7; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_DO";
            case 1: return "statement";
            case 2: return "T_WHILE";
            case 3: return "T_LPAR";
            case 4: return "expr";
            case 5: return "T_RPAR";
            case 6: return "T_SEMICOLON";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 6");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 17: unticked_statement ::= T_DO statement T_WHILE T_LPAR expr T_RPAR T_SEMICOLON ";
	}
}

/**
 *
 */
class Rule18 extends Rule {
	public int getNumber() { return 18; }
	public String getLhs() { return "unticked_statement"; }
	public int getSize() { return 9; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_FOR";
            case 1: return "T_LPAR";
            case 2: return "for_expr";
            case 3: return "T_SEMICOLON";
            case 4: return "for_expr";
            case 5: return "T_SEMICOLON";
            case 6: return "for_expr";
            case 7: return "T_RPAR";
            case 8: return "for_statement";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 8");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 18: unticked_statement ::= T_FOR T_LPAR for_expr T_SEMICOLON for_expr T_SEMICOLON for_expr T_RPAR for_statement ";
	}
}

/**
 *
 */
class Rule19 extends Rule {
	public int getNumber() { return 19; }
	public String getLhs() { return "unticked_statement"; }
	public int getSize() { return 5; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_SWITCH";
            case 1: return "T_LPAR";
            case 2: return "expr";
            case 3: return "T_RPAR";
            case 4: return "switch_case_list";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 4");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 19: unticked_statement ::= T_SWITCH T_LPAR expr T_RPAR switch_case_list ";
	}
}

/**
 *
 */
class Rule20 extends Rule {
	public int getNumber() { return 20; }
	public String getLhs() { return "unticked_statement"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_BREAK";
            case 1: return "T_SEMICOLON";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 20: unticked_statement ::= T_BREAK T_SEMICOLON ";
	}
}

/**
 *
 */
class Rule21 extends Rule {
	public int getNumber() { return 21; }
	public String getLhs() { return "unticked_statement"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_BREAK";
            case 1: return "expr";
            case 2: return "T_SEMICOLON";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 21: unticked_statement ::= T_BREAK expr T_SEMICOLON ";
	}
}

/**
 *
 */
class Rule22 extends Rule {
	public int getNumber() { return 22; }
	public String getLhs() { return "unticked_statement"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_CONTINUE";
            case 1: return "T_SEMICOLON";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 22: unticked_statement ::= T_CONTINUE T_SEMICOLON ";
	}
}

/**
 *
 */
class Rule23 extends Rule {
	public int getNumber() { return 23; }
	public String getLhs() { return "unticked_statement"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_CONTINUE";
            case 1: return "expr";
            case 2: return "T_SEMICOLON";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 23: unticked_statement ::= T_CONTINUE expr T_SEMICOLON ";
	}
}

/**
 *
 */
class Rule24 extends Rule {
	public int getNumber() { return 24; }
	public String getLhs() { return "unticked_statement"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_RETURN";
            case 1: return "T_SEMICOLON";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 24: unticked_statement ::= T_RETURN T_SEMICOLON ";
	}
}

/**
 *
 */
class Rule25 extends Rule {
	public int getNumber() { return 25; }
	public String getLhs() { return "unticked_statement"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_RETURN";
            case 1: return "pw_logical_expr_oo";
            case 2: return "T_SEMICOLON";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 25: unticked_statement ::= T_RETURN pw_logical_expr_oo T_SEMICOLON ";
	}
}

/**
 *
 */
class Rule26 extends Rule {
	public int getNumber() { return 26; }
	public String getLhs() { return "unticked_statement"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_GLOBAL";
            case 1: return "global_var_list";
            case 2: return "T_SEMICOLON";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 26: unticked_statement ::= T_GLOBAL global_var_list T_SEMICOLON ";
	}
}

/**
 *
 */
class Rule27 extends Rule {
	public int getNumber() { return 27; }
	public String getLhs() { return "unticked_statement"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_STATIC";
            case 1: return "static_var_list";
            case 2: return "T_SEMICOLON";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 27: unticked_statement ::= T_STATIC static_var_list T_SEMICOLON ";
	}
}

/**
 *
 */
class Rule28 extends Rule {
	public int getNumber() { return 28; }
	public String getLhs() { return "unticked_statement"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_ECHO";
            case 1: return "echo_expr_list";
            case 2: return "T_SEMICOLON";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 28: unticked_statement ::= T_ECHO echo_expr_list T_SEMICOLON ";
	}
}

/**
 *
 */
class Rule29 extends Rule {
	public int getNumber() { return 29; }
	public String getLhs() { return "unticked_statement"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_INLINE_HTML";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 29: unticked_statement ::= T_INLINE_HTML ";
	}
}

/**
 *
 */
class Rule30 extends Rule {
	public int getNumber() { return 30; }
	public String getLhs() { return "unticked_statement"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "expr";
            case 1: return "T_SEMICOLON";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 30: unticked_statement ::= expr T_SEMICOLON ";
	}
}

/**
 *
 */
class Rule31 extends Rule {
	public int getNumber() { return 31; }
	public String getLhs() { return "unticked_statement"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_USE";
            case 1: return "use_filename";
            case 2: return "T_SEMICOLON";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 31: unticked_statement ::= T_USE use_filename T_SEMICOLON ";
	}
}

/**
 *
 */
class Rule32 extends Rule {
	public int getNumber() { return 32; }
	public String getLhs() { return "unticked_statement"; }
	public int getSize() { return 5; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_UNSET";
            case 1: return "T_LPAR";
            case 2: return "unset_variables";
            case 3: return "T_RPAR";
            case 4: return "T_SEMICOLON";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 4");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 32: unticked_statement ::= T_UNSET T_LPAR unset_variables T_RPAR T_SEMICOLON ";
	}
}

/**
 *
 */
class Rule33 extends Rule {
	public int getNumber() { return 33; }
	public String getLhs() { return "unticked_statement"; }
	public int getSize() { return 8; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_FOREACH";
            case 1: return "T_LPAR";
            case 2: return "variable";
            case 3: return "T_AS";
            case 4: return "foreach_variable";
            case 5: return "foreach_optional_arg";
            case 6: return "T_RPAR";
            case 7: return "foreach_statement";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 7");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 33: unticked_statement ::= T_FOREACH T_LPAR variable T_AS foreach_variable foreach_optional_arg T_RPAR foreach_statement ";
	}
}

/**
 *
 */
class Rule34 extends Rule {
	public int getNumber() { return 34; }
	public String getLhs() { return "unticked_statement"; }
	public int getSize() { return 8; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_FOREACH";
            case 1: return "T_LPAR";
            case 2: return "pw_logical_expr_oo";
            case 3: return "T_AS";
            case 4: return "variable";
            case 5: return "foreach_optional_arg";
            case 6: return "T_RPAR";
            case 7: return "foreach_statement";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 7");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 34: unticked_statement ::= T_FOREACH T_LPAR pw_logical_expr_oo T_AS variable foreach_optional_arg T_RPAR foreach_statement ";
	}
}

/**
 *
 */
class Rule35 extends Rule {
	public int getNumber() { return 35; }
	public String getLhs() { return "unticked_statement"; }
	public int getSize() { return 5; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_DECLARE";
            case 1: return "T_LPAR";
            case 2: return "declare_list";
            case 3: return "T_RPAR";
            case 4: return "declare_statement";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 4");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 35: unticked_statement ::= T_DECLARE T_LPAR declare_list T_RPAR declare_statement ";
	}
}

/**
 *
 */
class Rule36 extends Rule {
	public int getNumber() { return 36; }
	public String getLhs() { return "unticked_statement"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_SEMICOLON";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 36: unticked_statement ::= T_SEMICOLON ";
	}
}

/**
 *
 */
class Rule37 extends Rule {
	public int getNumber() { return 37; }
	public String getLhs() { return "unticked_statement"; }
	public int getSize() { return 13; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_TRY";
            case 1: return "T_CURLY_OPEN";
            case 2: return "inner_statement_list";
            case 3: return "T_CURLY_CLOSE";
            case 4: return "T_CATCH";
            case 5: return "T_LPAR";
            case 6: return "fully_qualified_class_name";
            case 7: return "T_VARIABLE";
            case 8: return "T_RPAR";
            case 9: return "T_CURLY_OPEN";
            case 10: return "inner_statement_list";
            case 11: return "T_CURLY_CLOSE";
            case 12: return "additional_catches";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 12");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 37: unticked_statement ::= T_TRY T_CURLY_OPEN inner_statement_list T_CURLY_CLOSE T_CATCH T_LPAR fully_qualified_class_name T_VARIABLE T_RPAR T_CURLY_OPEN inner_statement_list T_CURLY_CLOSE additional_catches ";
	}
}

/**
 *
 */
class Rule38 extends Rule {
	public int getNumber() { return 38; }
	public String getLhs() { return "unticked_statement"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_THROW";
            case 1: return "expr";
            case 2: return "T_SEMICOLON";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 38: unticked_statement ::= T_THROW expr T_SEMICOLON ";
	}
}

/**
 *
 */
class Rule39 extends Rule {
	public int getNumber() { return 39; }
	public String getLhs() { return "additional_catches"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "non_empty_additional_catches";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 39: additional_catches ::= non_empty_additional_catches ";
	}
}

/**
 *
 */
class Rule40 extends Rule {
	public int getNumber() { return 40; }
	public String getLhs() { return "additional_catches"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 40: additional_catches ::= ";
	}
}

/**
 *
 */
class Rule41 extends Rule {
	public int getNumber() { return 41; }
	public String getLhs() { return "non_empty_additional_catches"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "additional_catch";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 41: non_empty_additional_catches ::= additional_catch ";
	}
}

/**
 *
 */
class Rule42 extends Rule {
	public int getNumber() { return 42; }
	public String getLhs() { return "non_empty_additional_catches"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "non_empty_additional_catches";
            case 1: return "additional_catch";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 42: non_empty_additional_catches ::= non_empty_additional_catches additional_catch ";
	}
}

/**
 *
 */
class Rule43 extends Rule {
	public int getNumber() { return 43; }
	public String getLhs() { return "additional_catch"; }
	public int getSize() { return 8; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_CATCH";
            case 1: return "T_LPAR";
            case 2: return "fully_qualified_class_name";
            case 3: return "T_VARIABLE";
            case 4: return "T_RPAR";
            case 5: return "T_CURLY_OPEN";
            case 6: return "inner_statement_list";
            case 7: return "T_CURLY_CLOSE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 7");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 43: additional_catch ::= T_CATCH T_LPAR fully_qualified_class_name T_VARIABLE T_RPAR T_CURLY_OPEN inner_statement_list T_CURLY_CLOSE ";
	}
}

/**
 *
 */
class Rule44 extends Rule {
	public int getNumber() { return 44; }
	public String getLhs() { return "unset_variables"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "unset_variable";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 44: unset_variables ::= unset_variable ";
	}
}

/**
 *
 */
class Rule45 extends Rule {
	public int getNumber() { return 45; }
	public String getLhs() { return "unset_variables"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "unset_variables";
            case 1: return "T_COMMA";
            case 2: return "unset_variable";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 45: unset_variables ::= unset_variables T_COMMA unset_variable ";
	}
}

/**
 *
 */
class Rule46 extends Rule {
	public int getNumber() { return 46; }
	public String getLhs() { return "unset_variable"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 46: unset_variable ::= variable ";
	}
}

/**
 *
 */
class Rule47 extends Rule {
	public int getNumber() { return 47; }
	public String getLhs() { return "use_filename"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_CONSTANT_ENCAPSED_STRING";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 47: use_filename ::= T_CONSTANT_ENCAPSED_STRING ";
	}
}

/**
 *
 */
class Rule48 extends Rule {
	public int getNumber() { return 48; }
	public String getLhs() { return "use_filename"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_LPAR";
            case 1: return "T_CONSTANT_ENCAPSED_STRING";
            case 2: return "T_RPAR";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 48: use_filename ::= T_LPAR T_CONSTANT_ENCAPSED_STRING T_RPAR ";
	}
}

/**
 *
 */
class Rule49 extends Rule {
	public int getNumber() { return 49; }
	public String getLhs() { return "function_declaration_statement"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "unticked_function_declaration_statement";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 49: function_declaration_statement ::= unticked_function_declaration_statement ";
	}
}

/**
 *
 */
class Rule50 extends Rule {
	public int getNumber() { return 50; }
	public String getLhs() { return "class_declaration_statement"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "unticked_class_declaration_statement";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 50: class_declaration_statement ::= unticked_class_declaration_statement ";
	}
}

/**
 *
 */
class Rule51 extends Rule {
	public int getNumber() { return 51; }
	public String getLhs() { return "is_reference"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_AMPERSAND";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 51: is_reference ::= T_AMPERSAND ";
	}
}

/**
 *
 */
class Rule52 extends Rule {
	public int getNumber() { return 52; }
	public String getLhs() { return "is_reference"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 52: is_reference ::= ";
	}
}

/**
 *
 */
class Rule53 extends Rule {
	public int getNumber() { return 53; }
	public String getLhs() { return "unticked_function_declaration_statement"; }
	public int getSize() { return 9; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_FUNCTION";
            case 1: return "is_reference";
            case 2: return "T_STRING";
            case 3: return "T_LPAR";
            case 4: return "parameter_list";
            case 5: return "T_RPAR";
            case 6: return "T_CURLY_OPEN";
            case 7: return "inner_statement_list";
            case 8: return "T_CURLY_CLOSE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 8");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 53: unticked_function_declaration_statement ::= T_FUNCTION is_reference T_STRING T_LPAR parameter_list T_RPAR T_CURLY_OPEN inner_statement_list T_CURLY_CLOSE ";
	}
}

/**
 *
 */
class Rule54 extends Rule {
	public int getNumber() { return 54; }
	public String getLhs() { return "unticked_class_declaration_statement"; }
	public int getSize() { return 7; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "class_entry_type";
            case 1: return "T_STRING";
            case 2: return "extends_from";
            case 3: return "implements_list";
            case 4: return "T_CURLY_OPEN";
            case 5: return "class_statement_list";
            case 6: return "T_CURLY_CLOSE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 6");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 54: unticked_class_declaration_statement ::= class_entry_type T_STRING extends_from implements_list T_CURLY_OPEN class_statement_list T_CURLY_CLOSE ";
	}
}

/**
 *
 */
class Rule55 extends Rule {
	public int getNumber() { return 55; }
	public String getLhs() { return "unticked_class_declaration_statement"; }
	public int getSize() { return 6; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "interface_entry";
            case 1: return "T_STRING";
            case 2: return "interface_extends_list";
            case 3: return "T_CURLY_OPEN";
            case 4: return "class_statement_list";
            case 5: return "T_CURLY_CLOSE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 5");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 55: unticked_class_declaration_statement ::= interface_entry T_STRING interface_extends_list T_CURLY_OPEN class_statement_list T_CURLY_CLOSE ";
	}
}

/**
 *
 */
class Rule56 extends Rule {
	public int getNumber() { return 56; }
	public String getLhs() { return "class_entry_type"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_CLASS";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 56: class_entry_type ::= T_CLASS ";
	}
}

/**
 *
 */
class Rule57 extends Rule {
	public int getNumber() { return 57; }
	public String getLhs() { return "class_entry_type"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_ABSTRACT";
            case 1: return "T_CLASS";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 57: class_entry_type ::= T_ABSTRACT T_CLASS ";
	}
}

/**
 *
 */
class Rule58 extends Rule {
	public int getNumber() { return 58; }
	public String getLhs() { return "class_entry_type"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_FINAL";
            case 1: return "T_CLASS";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 58: class_entry_type ::= T_FINAL T_CLASS ";
	}
}

/**
 *
 */
class Rule59 extends Rule {
	public int getNumber() { return 59; }
	public String getLhs() { return "extends_from"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_EXTENDS";
            case 1: return "fully_qualified_class_name";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 59: extends_from ::= T_EXTENDS fully_qualified_class_name ";
	}
}

/**
 *
 */
class Rule60 extends Rule {
	public int getNumber() { return 60; }
	public String getLhs() { return "extends_from"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 60: extends_from ::= ";
	}
}

/**
 *
 */
class Rule61 extends Rule {
	public int getNumber() { return 61; }
	public String getLhs() { return "interface_entry"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_INTERFACE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 61: interface_entry ::= T_INTERFACE ";
	}
}

/**
 *
 */
class Rule62 extends Rule {
	public int getNumber() { return 62; }
	public String getLhs() { return "interface_extends_list"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_EXTENDS";
            case 1: return "interface_list";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 62: interface_extends_list ::= T_EXTENDS interface_list ";
	}
}

/**
 *
 */
class Rule63 extends Rule {
	public int getNumber() { return 63; }
	public String getLhs() { return "interface_extends_list"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 63: interface_extends_list ::= ";
	}
}

/**
 *
 */
class Rule64 extends Rule {
	public int getNumber() { return 64; }
	public String getLhs() { return "implements_list"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_IMPLEMENTS";
            case 1: return "interface_list";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 64: implements_list ::= T_IMPLEMENTS interface_list ";
	}
}

/**
 *
 */
class Rule65 extends Rule {
	public int getNumber() { return 65; }
	public String getLhs() { return "implements_list"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 65: implements_list ::= ";
	}
}

/**
 *
 */
class Rule66 extends Rule {
	public int getNumber() { return 66; }
	public String getLhs() { return "interface_list"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "fully_qualified_class_name";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 66: interface_list ::= fully_qualified_class_name ";
	}
}

/**
 *
 */
class Rule67 extends Rule {
	public int getNumber() { return 67; }
	public String getLhs() { return "interface_list"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "interface_list";
            case 1: return "T_COMMA";
            case 2: return "fully_qualified_class_name";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 67: interface_list ::= interface_list T_COMMA fully_qualified_class_name ";
	}
}

/**
 *
 */
class Rule68 extends Rule {
	public int getNumber() { return 68; }
	public String getLhs() { return "foreach_optional_arg"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_DOUBLE_ARROW";
            case 1: return "foreach_variable";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 68: foreach_optional_arg ::= T_DOUBLE_ARROW foreach_variable ";
	}
}

/**
 *
 */
class Rule69 extends Rule {
	public int getNumber() { return 69; }
	public String getLhs() { return "foreach_optional_arg"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 69: foreach_optional_arg ::= ";
	}
}

/**
 *
 */
class Rule70 extends Rule {
	public int getNumber() { return 70; }
	public String getLhs() { return "foreach_variable"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 70: foreach_variable ::= variable ";
	}
}

/**
 *
 */
class Rule71 extends Rule {
	public int getNumber() { return 71; }
	public String getLhs() { return "foreach_variable"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_AMPERSAND";
            case 1: return "variable";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 71: foreach_variable ::= T_AMPERSAND variable ";
	}
}

/**
 *
 */
class Rule72 extends Rule {
	public int getNumber() { return 72; }
	public String getLhs() { return "for_statement"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "statement";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 72: for_statement ::= statement ";
	}
}

/**
 *
 */
class Rule73 extends Rule {
	public int getNumber() { return 73; }
	public String getLhs() { return "for_statement"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_COLON";
            case 1: return "inner_statement_list";
            case 2: return "T_ENDFOR";
            case 3: return "T_SEMICOLON";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 73: for_statement ::= T_COLON inner_statement_list T_ENDFOR T_SEMICOLON ";
	}
}

/**
 *
 */
class Rule74 extends Rule {
	public int getNumber() { return 74; }
	public String getLhs() { return "foreach_statement"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "statement";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 74: foreach_statement ::= statement ";
	}
}

/**
 *
 */
class Rule75 extends Rule {
	public int getNumber() { return 75; }
	public String getLhs() { return "foreach_statement"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_COLON";
            case 1: return "inner_statement_list";
            case 2: return "T_ENDFOREACH";
            case 3: return "T_SEMICOLON";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 75: foreach_statement ::= T_COLON inner_statement_list T_ENDFOREACH T_SEMICOLON ";
	}
}

/**
 *
 */
class Rule76 extends Rule {
	public int getNumber() { return 76; }
	public String getLhs() { return "declare_statement"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "statement";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 76: declare_statement ::= statement ";
	}
}

/**
 *
 */
class Rule77 extends Rule {
	public int getNumber() { return 77; }
	public String getLhs() { return "declare_statement"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_COLON";
            case 1: return "inner_statement_list";
            case 2: return "T_ENDDECLARE";
            case 3: return "T_SEMICOLON";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 77: declare_statement ::= T_COLON inner_statement_list T_ENDDECLARE T_SEMICOLON ";
	}
}

/**
 *
 */
class Rule78 extends Rule {
	public int getNumber() { return 78; }
	public String getLhs() { return "declare_list"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable_declaration";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 78: declare_list ::= variable_declaration ";
	}
}

/**
 *
 */
class Rule79 extends Rule {
	public int getNumber() { return 79; }
	public String getLhs() { return "declare_list"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "declare_list";
            case 1: return "T_COMMA";
            case 2: return "variable_declaration";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 79: declare_list ::= declare_list T_COMMA variable_declaration ";
	}
}

/**
 *
 */
class Rule80 extends Rule {
	public int getNumber() { return 80; }
	public String getLhs() { return "variable_declaration"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_STRING";
            case 1: return "T_EQUAL";
            case 2: return "static_scalar";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 80: variable_declaration ::= T_STRING T_EQUAL static_scalar ";
	}
}

/**
 *
 */
class Rule81 extends Rule {
	public int getNumber() { return 81; }
	public String getLhs() { return "switch_case_list"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_CURLY_OPEN";
            case 1: return "case_list";
            case 2: return "T_CURLY_CLOSE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 81: switch_case_list ::= T_CURLY_OPEN case_list T_CURLY_CLOSE ";
	}
}

/**
 *
 */
class Rule82 extends Rule {
	public int getNumber() { return 82; }
	public String getLhs() { return "switch_case_list"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_CURLY_OPEN";
            case 1: return "T_SEMICOLON";
            case 2: return "case_list";
            case 3: return "T_CURLY_CLOSE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 82: switch_case_list ::= T_CURLY_OPEN T_SEMICOLON case_list T_CURLY_CLOSE ";
	}
}

/**
 *
 */
class Rule83 extends Rule {
	public int getNumber() { return 83; }
	public String getLhs() { return "switch_case_list"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_COLON";
            case 1: return "case_list";
            case 2: return "T_ENDSWITCH";
            case 3: return "T_SEMICOLON";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 83: switch_case_list ::= T_COLON case_list T_ENDSWITCH T_SEMICOLON ";
	}
}

/**
 *
 */
class Rule84 extends Rule {
	public int getNumber() { return 84; }
	public String getLhs() { return "switch_case_list"; }
	public int getSize() { return 5; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_COLON";
            case 1: return "T_SEMICOLON";
            case 2: return "case_list";
            case 3: return "T_ENDSWITCH";
            case 4: return "T_SEMICOLON";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 4");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 84: switch_case_list ::= T_COLON T_SEMICOLON case_list T_ENDSWITCH T_SEMICOLON ";
	}
}

/**
 *
 */
class Rule85 extends Rule {
	public int getNumber() { return 85; }
	public String getLhs() { return "case_list"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "case_list";
            case 1: return "case_block";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 85: case_list ::= case_list case_block ";
	}
}

/**
 *
 */
class Rule86 extends Rule {
	public int getNumber() { return 86; }
	public String getLhs() { return "case_list"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 86: case_list ::= ";
	}
}

/**
 *
 */
class Rule87 extends Rule {
	public int getNumber() { return 87; }
	public String getLhs() { return "case_block"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_CASE";
            case 1: return "expr";
            case 2: return "case_separator";
            case 3: return "inner_statement_list";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 87: case_block ::= T_CASE expr case_separator inner_statement_list ";
	}
}

/**
 *
 */
class Rule88 extends Rule {
	public int getNumber() { return 88; }
	public String getLhs() { return "case_block"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_DEFAULT";
            case 1: return "case_separator";
            case 2: return "inner_statement_list";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 88: case_block ::= T_DEFAULT case_separator inner_statement_list ";
	}
}

/**
 *
 */
class Rule89 extends Rule {
	public int getNumber() { return 89; }
	public String getLhs() { return "case_separator"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_COLON";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 89: case_separator ::= T_COLON ";
	}
}

/**
 *
 */
class Rule90 extends Rule {
	public int getNumber() { return 90; }
	public String getLhs() { return "case_separator"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_SEMICOLON";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 90: case_separator ::= T_SEMICOLON ";
	}
}

/**
 *
 */
class Rule91 extends Rule {
	public int getNumber() { return 91; }
	public String getLhs() { return "while_statement"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "statement";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 91: while_statement ::= statement ";
	}
}

/**
 *
 */
class Rule92 extends Rule {
	public int getNumber() { return 92; }
	public String getLhs() { return "while_statement"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_COLON";
            case 1: return "inner_statement_list";
            case 2: return "T_ENDWHILE";
            case 3: return "T_SEMICOLON";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 92: while_statement ::= T_COLON inner_statement_list T_ENDWHILE T_SEMICOLON ";
	}
}

/**
 *
 */
class Rule93 extends Rule {
	public int getNumber() { return 93; }
	public String getLhs() { return "elseif_list"; }
	public int getSize() { return 6; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "elseif_list";
            case 1: return "T_ELSEIF";
            case 2: return "T_LPAR";
            case 3: return "expr";
            case 4: return "T_RPAR";
            case 5: return "statement";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 5");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 93: elseif_list ::= elseif_list T_ELSEIF T_LPAR expr T_RPAR statement ";
	}
}

/**
 *
 */
class Rule94 extends Rule {
	public int getNumber() { return 94; }
	public String getLhs() { return "elseif_list"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 94: elseif_list ::= ";
	}
}

/**
 *
 */
class Rule95 extends Rule {
	public int getNumber() { return 95; }
	public String getLhs() { return "new_elseif_list"; }
	public int getSize() { return 7; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "new_elseif_list";
            case 1: return "T_ELSEIF";
            case 2: return "T_LPAR";
            case 3: return "expr";
            case 4: return "T_RPAR";
            case 5: return "T_COLON";
            case 6: return "inner_statement_list";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 6");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 95: new_elseif_list ::= new_elseif_list T_ELSEIF T_LPAR expr T_RPAR T_COLON inner_statement_list ";
	}
}

/**
 *
 */
class Rule96 extends Rule {
	public int getNumber() { return 96; }
	public String getLhs() { return "new_elseif_list"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 96: new_elseif_list ::= ";
	}
}

/**
 *
 */
class Rule97 extends Rule {
	public int getNumber() { return 97; }
	public String getLhs() { return "else_single"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_ELSE";
            case 1: return "statement";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 97: else_single ::= T_ELSE statement ";
	}
}

/**
 *
 */
class Rule98 extends Rule {
	public int getNumber() { return 98; }
	public String getLhs() { return "else_single"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 98: else_single ::= ";
	}
}

/**
 *
 */
class Rule99 extends Rule {
	public int getNumber() { return 99; }
	public String getLhs() { return "new_else_single"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_ELSE";
            case 1: return "T_COLON";
            case 2: return "inner_statement_list";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 99: new_else_single ::= T_ELSE T_COLON inner_statement_list ";
	}
}

/**
 *
 */
class Rule100 extends Rule {
	public int getNumber() { return 100; }
	public String getLhs() { return "new_else_single"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 100: new_else_single ::= ";
	}
}

/**
 *
 */
class Rule101 extends Rule {
	public int getNumber() { return 101; }
	public String getLhs() { return "parameter_list"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "non_empty_parameter_list";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 101: parameter_list ::= non_empty_parameter_list ";
	}
}

/**
 *
 */
class Rule102 extends Rule {
	public int getNumber() { return 102; }
	public String getLhs() { return "parameter_list"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 102: parameter_list ::= ";
	}
}

/**
 *
 */
class Rule103 extends Rule {
	public int getNumber() { return 103; }
	public String getLhs() { return "non_empty_parameter_list"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "parameter_declaration";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 103: non_empty_parameter_list ::= parameter_declaration ";
	}
}

/**
 *
 */
class Rule104 extends Rule {
	public int getNumber() { return 104; }
	public String getLhs() { return "non_empty_parameter_list"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "non_empty_parameter_list";
            case 1: return "T_COMMA";
            case 2: return "parameter_declaration";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 104: non_empty_parameter_list ::= non_empty_parameter_list T_COMMA parameter_declaration ";
	}
}

/**
 *
 */
class Rule105 extends Rule {
	public int getNumber() { return 105; }
	public String getLhs() { return "parameter_declaration"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "optional_class_type";
            case 1: return "T_VARIABLE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 105: parameter_declaration ::= optional_class_type T_VARIABLE ";
	}
}

/**
 *
 */
class Rule106 extends Rule {
	public int getNumber() { return 106; }
	public String getLhs() { return "parameter_declaration"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "optional_class_type";
            case 1: return "T_AMPERSAND";
            case 2: return "T_VARIABLE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 106: parameter_declaration ::= optional_class_type T_AMPERSAND T_VARIABLE ";
	}
}

/**
 *
 */
class Rule107 extends Rule {
	public int getNumber() { return 107; }
	public String getLhs() { return "parameter_declaration"; }
	public int getSize() { return 5; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "optional_class_type";
            case 1: return "T_AMPERSAND";
            case 2: return "T_VARIABLE";
            case 3: return "T_EQUAL";
            case 4: return "static_scalar";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 4");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 107: parameter_declaration ::= optional_class_type T_AMPERSAND T_VARIABLE T_EQUAL static_scalar ";
	}
}

/**
 *
 */
class Rule108 extends Rule {
	public int getNumber() { return 108; }
	public String getLhs() { return "parameter_declaration"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "optional_class_type";
            case 1: return "T_VARIABLE";
            case 2: return "T_EQUAL";
            case 3: return "static_scalar";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 108: parameter_declaration ::= optional_class_type T_VARIABLE T_EQUAL static_scalar ";
	}
}

/**
 *
 */
class Rule109 extends Rule {
	public int getNumber() { return 109; }
	public String getLhs() { return "optional_class_type"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_STRING";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 109: optional_class_type ::= T_STRING ";
	}
}

/**
 *
 */
class Rule110 extends Rule {
	public int getNumber() { return 110; }
	public String getLhs() { return "optional_class_type"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_ARRAY";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 110: optional_class_type ::= T_ARRAY ";
	}
}

/**
 *
 */
class Rule111 extends Rule {
	public int getNumber() { return 111; }
	public String getLhs() { return "optional_class_type"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 111: optional_class_type ::= ";
	}
}

/**
 *
 */
class Rule112 extends Rule {
	public int getNumber() { return 112; }
	public String getLhs() { return "function_call_parameter_list"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "non_empty_function_call_parameter_list";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 112: function_call_parameter_list ::= non_empty_function_call_parameter_list ";
	}
}

/**
 *
 */
class Rule113 extends Rule {
	public int getNumber() { return 113; }
	public String getLhs() { return "function_call_parameter_list"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 113: function_call_parameter_list ::= ";
	}
}

/**
 *
 */
class Rule114 extends Rule {
	public int getNumber() { return 114; }
	public String getLhs() { return "non_empty_function_call_parameter_list"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "non_empty_function_call_parameter";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 114: non_empty_function_call_parameter_list ::= non_empty_function_call_parameter ";
	}
}

/**
 *
 */
class Rule115 extends Rule {
	public int getNumber() { return 115; }
	public String getLhs() { return "non_empty_function_call_parameter_list"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "non_empty_function_call_parameter_list";
            case 1: return "T_COMMA";
            case 2: return "non_empty_function_call_parameter";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 115: non_empty_function_call_parameter_list ::= non_empty_function_call_parameter_list T_COMMA non_empty_function_call_parameter ";
	}
}

/**
 *
 */
class Rule116 extends Rule {
	public int getNumber() { return 116; }
	public String getLhs() { return "non_empty_function_call_parameter"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_logical_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 116: non_empty_function_call_parameter ::= pw_logical_expr_oo ";
	}
}

/**
 *
 */
class Rule117 extends Rule {
	public int getNumber() { return 117; }
	public String getLhs() { return "non_empty_function_call_parameter"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_AMPERSAND";
            case 1: return "variable";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 117: non_empty_function_call_parameter ::= T_AMPERSAND variable ";
	}
}

/**
 *
 */
class Rule118 extends Rule {
	public int getNumber() { return 118; }
	public String getLhs() { return "non_empty_function_call_parameter"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_instanceof_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 118: non_empty_function_call_parameter ::= pw_instanceof_oo ";
	}
}

/**
 *
 */
class Rule119 extends Rule {
	public int getNumber() { return 119; }
	public String getLhs() { return "global_var_list"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "global_var_list";
            case 1: return "T_COMMA";
            case 2: return "global_var";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 119: global_var_list ::= global_var_list T_COMMA global_var ";
	}
}

/**
 *
 */
class Rule120 extends Rule {
	public int getNumber() { return 120; }
	public String getLhs() { return "global_var_list"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "global_var";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 120: global_var_list ::= global_var ";
	}
}

/**
 *
 */
class Rule121 extends Rule {
	public int getNumber() { return 121; }
	public String getLhs() { return "global_var"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_VARIABLE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 121: global_var ::= T_VARIABLE ";
	}
}

/**
 *
 */
class Rule122 extends Rule {
	public int getNumber() { return 122; }
	public String getLhs() { return "global_var"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_DOLLAR";
            case 1: return "variable";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 122: global_var ::= T_DOLLAR variable ";
	}
}

/**
 *
 */
class Rule123 extends Rule {
	public int getNumber() { return 123; }
	public String getLhs() { return "global_var"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_DOLLAR";
            case 1: return "T_CURLY_OPEN";
            case 2: return "expr";
            case 3: return "T_CURLY_CLOSE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 123: global_var ::= T_DOLLAR T_CURLY_OPEN expr T_CURLY_CLOSE ";
	}
}

/**
 *
 */
class Rule124 extends Rule {
	public int getNumber() { return 124; }
	public String getLhs() { return "global_var"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_DOLLAR_OPEN_CURLY_BRACES";
            case 1: return "expr";
            case 2: return "T_CURLY_CLOSE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 124: global_var ::= T_DOLLAR_OPEN_CURLY_BRACES expr T_CURLY_CLOSE ";
	}
}

/**
 *
 */
class Rule125 extends Rule {
	public int getNumber() { return 125; }
	public String getLhs() { return "static_var_list"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "static_var_list";
            case 1: return "T_COMMA";
            case 2: return "static_var";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 125: static_var_list ::= static_var_list T_COMMA static_var ";
	}
}

/**
 *
 */
class Rule126 extends Rule {
	public int getNumber() { return 126; }
	public String getLhs() { return "static_var_list"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "static_var";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 126: static_var_list ::= static_var ";
	}
}

/**
 *
 */
class Rule127 extends Rule {
	public int getNumber() { return 127; }
	public String getLhs() { return "static_var"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_VARIABLE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 127: static_var ::= T_VARIABLE ";
	}
}

/**
 *
 */
class Rule128 extends Rule {
	public int getNumber() { return 128; }
	public String getLhs() { return "static_var"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_VARIABLE";
            case 1: return "T_EQUAL";
            case 2: return "static_scalar";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 128: static_var ::= T_VARIABLE T_EQUAL static_scalar ";
	}
}

/**
 *
 */
class Rule129 extends Rule {
	public int getNumber() { return 129; }
	public String getLhs() { return "class_statement_list"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "class_statement_list";
            case 1: return "class_statement";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 129: class_statement_list ::= class_statement_list class_statement ";
	}
}

/**
 *
 */
class Rule130 extends Rule {
	public int getNumber() { return 130; }
	public String getLhs() { return "class_statement_list"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 130: class_statement_list ::= ";
	}
}

/**
 *
 */
class Rule131 extends Rule {
	public int getNumber() { return 131; }
	public String getLhs() { return "class_statement"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable_modifiers";
            case 1: return "class_variable_declaration";
            case 2: return "T_SEMICOLON";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 131: class_statement ::= variable_modifiers class_variable_declaration T_SEMICOLON ";
	}
}

/**
 *
 */
class Rule132 extends Rule {
	public int getNumber() { return 132; }
	public String getLhs() { return "class_statement"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "class_constant_declaration";
            case 1: return "T_SEMICOLON";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 132: class_statement ::= class_constant_declaration T_SEMICOLON ";
	}
}

/**
 *
 */
class Rule133 extends Rule {
	public int getNumber() { return 133; }
	public String getLhs() { return "class_statement"; }
	public int getSize() { return 8; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "method_modifiers";
            case 1: return "T_FUNCTION";
            case 2: return "is_reference";
            case 3: return "T_STRING";
            case 4: return "T_LPAR";
            case 5: return "parameter_list";
            case 6: return "T_RPAR";
            case 7: return "method_body";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 7");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 133: class_statement ::= method_modifiers T_FUNCTION is_reference T_STRING T_LPAR parameter_list T_RPAR method_body ";
	}
}

/**
 *
 */
class Rule134 extends Rule {
	public int getNumber() { return 134; }
	public String getLhs() { return "method_body"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_SEMICOLON";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 134: method_body ::= T_SEMICOLON ";
	}
}

/**
 *
 */
class Rule135 extends Rule {
	public int getNumber() { return 135; }
	public String getLhs() { return "method_body"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_CURLY_OPEN";
            case 1: return "inner_statement_list";
            case 2: return "T_CURLY_CLOSE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 135: method_body ::= T_CURLY_OPEN inner_statement_list T_CURLY_CLOSE ";
	}
}

/**
 *
 */
class Rule136 extends Rule {
	public int getNumber() { return 136; }
	public String getLhs() { return "variable_modifiers"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "non_empty_member_modifiers";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 136: variable_modifiers ::= non_empty_member_modifiers ";
	}
}

/**
 *
 */
class Rule137 extends Rule {
	public int getNumber() { return 137; }
	public String getLhs() { return "variable_modifiers"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_VAR";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 137: variable_modifiers ::= T_VAR ";
	}
}

/**
 *
 */
class Rule138 extends Rule {
	public int getNumber() { return 138; }
	public String getLhs() { return "method_modifiers"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 138: method_modifiers ::= ";
	}
}

/**
 *
 */
class Rule139 extends Rule {
	public int getNumber() { return 139; }
	public String getLhs() { return "method_modifiers"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "non_empty_member_modifiers";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 139: method_modifiers ::= non_empty_member_modifiers ";
	}
}

/**
 *
 */
class Rule140 extends Rule {
	public int getNumber() { return 140; }
	public String getLhs() { return "non_empty_member_modifiers"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "member_modifier";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 140: non_empty_member_modifiers ::= member_modifier ";
	}
}

/**
 *
 */
class Rule141 extends Rule {
	public int getNumber() { return 141; }
	public String getLhs() { return "non_empty_member_modifiers"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "non_empty_member_modifiers";
            case 1: return "member_modifier";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 141: non_empty_member_modifiers ::= non_empty_member_modifiers member_modifier ";
	}
}

/**
 *
 */
class Rule142 extends Rule {
	public int getNumber() { return 142; }
	public String getLhs() { return "member_modifier"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_PUBLIC";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 142: member_modifier ::= T_PUBLIC ";
	}
}

/**
 *
 */
class Rule143 extends Rule {
	public int getNumber() { return 143; }
	public String getLhs() { return "member_modifier"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_PROTECTED";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 143: member_modifier ::= T_PROTECTED ";
	}
}

/**
 *
 */
class Rule144 extends Rule {
	public int getNumber() { return 144; }
	public String getLhs() { return "member_modifier"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_PRIVATE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 144: member_modifier ::= T_PRIVATE ";
	}
}

/**
 *
 */
class Rule145 extends Rule {
	public int getNumber() { return 145; }
	public String getLhs() { return "member_modifier"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_STATIC";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 145: member_modifier ::= T_STATIC ";
	}
}

/**
 *
 */
class Rule146 extends Rule {
	public int getNumber() { return 146; }
	public String getLhs() { return "member_modifier"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_ABSTRACT";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 146: member_modifier ::= T_ABSTRACT ";
	}
}

/**
 *
 */
class Rule147 extends Rule {
	public int getNumber() { return 147; }
	public String getLhs() { return "member_modifier"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_FINAL";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 147: member_modifier ::= T_FINAL ";
	}
}

/**
 *
 */
class Rule148 extends Rule {
	public int getNumber() { return 148; }
	public String getLhs() { return "class_variable_declaration"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "class_variable_declaration";
            case 1: return "T_COMMA";
            case 2: return "class_variable_declaration_element";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 148: class_variable_declaration ::= class_variable_declaration T_COMMA class_variable_declaration_element ";
	}
}

/**
 *
 */
class Rule149 extends Rule {
	public int getNumber() { return 149; }
	public String getLhs() { return "class_variable_declaration"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "class_variable_declaration_element";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 149: class_variable_declaration ::= class_variable_declaration_element ";
	}
}

/**
 *
 */
class Rule150 extends Rule {
	public int getNumber() { return 150; }
	public String getLhs() { return "class_variable_declaration_element"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_VARIABLE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 150: class_variable_declaration_element ::= T_VARIABLE ";
	}
}

/**
 *
 */
class Rule151 extends Rule {
	public int getNumber() { return 151; }
	public String getLhs() { return "class_variable_declaration_element"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_VARIABLE";
            case 1: return "T_EQUAL";
            case 2: return "static_scalar";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 151: class_variable_declaration_element ::= T_VARIABLE T_EQUAL static_scalar ";
	}
}

/**
 *
 */
class Rule152 extends Rule {
	public int getNumber() { return 152; }
	public String getLhs() { return "class_constant_declaration"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "class_constant_declaration";
            case 1: return "T_COMMA";
            case 2: return "class_constant_declaration_element";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 152: class_constant_declaration ::= class_constant_declaration T_COMMA class_constant_declaration_element ";
	}
}

/**
 *
 */
class Rule153 extends Rule {
	public int getNumber() { return 153; }
	public String getLhs() { return "class_constant_declaration"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_CONST";
            case 1: return "class_constant_declaration_element";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 153: class_constant_declaration ::= T_CONST class_constant_declaration_element ";
	}
}

/**
 *
 */
class Rule154 extends Rule {
	public int getNumber() { return 154; }
	public String getLhs() { return "class_constant_declaration_element"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_STRING";
            case 1: return "T_EQUAL";
            case 2: return "static_scalar";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 154: class_constant_declaration_element ::= T_STRING T_EQUAL static_scalar ";
	}
}

/**
 *
 */
class Rule155 extends Rule {
	public int getNumber() { return 155; }
	public String getLhs() { return "echo_expr_list"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "echo_expr_list";
            case 1: return "T_COMMA";
            case 2: return "expr";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 155: echo_expr_list ::= echo_expr_list T_COMMA expr ";
	}
}

/**
 *
 */
class Rule156 extends Rule {
	public int getNumber() { return 156; }
	public String getLhs() { return "echo_expr_list"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "expr";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 156: echo_expr_list ::= expr ";
	}
}

/**
 *
 */
class Rule157 extends Rule {
	public int getNumber() { return 157; }
	public String getLhs() { return "for_expr"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "non_empty_for_expr";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 157: for_expr ::= non_empty_for_expr ";
	}
}

/**
 *
 */
class Rule158 extends Rule {
	public int getNumber() { return 158; }
	public String getLhs() { return "for_expr"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 158: for_expr ::= ";
	}
}

/**
 *
 */
class Rule159 extends Rule {
	public int getNumber() { return 159; }
	public String getLhs() { return "non_empty_for_expr"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "non_empty_for_expr";
            case 1: return "T_COMMA";
            case 2: return "expr";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 159: non_empty_for_expr ::= non_empty_for_expr T_COMMA expr ";
	}
}

/**
 *
 */
class Rule160 extends Rule {
	public int getNumber() { return 160; }
	public String getLhs() { return "non_empty_for_expr"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "expr";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 160: non_empty_for_expr ::= expr ";
	}
}

/**
 *
 */
class Rule161 extends Rule {
	public int getNumber() { return 161; }
	public String getLhs() { return "pw_logical_expr_oo"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_logical_or_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 161: pw_logical_expr_oo ::= pw_logical_or_oo ";
	}
}

/**
 *
 */
class Rule162 extends Rule {
	public int getNumber() { return 162; }
	public String getLhs() { return "pw_logical_or_oo"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_logical_xor_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 162: pw_logical_or_oo ::= pw_logical_xor_oo ";
	}
}

/**
 *
 */
class Rule163 extends Rule {
	public int getNumber() { return 163; }
	public String getLhs() { return "pw_logical_or_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_logical_or_oo";
            case 1: return "T_LOGICAL_OR";
            case 2: return "pw_logical_xor_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 163: pw_logical_or_oo ::= pw_logical_or_oo T_LOGICAL_OR pw_logical_xor_oo ";
	}
}

/**
 *
 */
class Rule164 extends Rule {
	public int getNumber() { return 164; }
	public String getLhs() { return "pw_logical_xor_oo"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_logical_and_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 164: pw_logical_xor_oo ::= pw_logical_and_oo ";
	}
}

/**
 *
 */
class Rule165 extends Rule {
	public int getNumber() { return 165; }
	public String getLhs() { return "pw_logical_xor_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_logical_xor_oo";
            case 1: return "T_LOGICAL_XOR";
            case 2: return "pw_logical_and_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 165: pw_logical_xor_oo ::= pw_logical_xor_oo T_LOGICAL_XOR pw_logical_and_oo ";
	}
}

/**
 *
 */
class Rule166 extends Rule {
	public int getNumber() { return 166; }
	public String getLhs() { return "pw_logical_and_oo"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_trinary_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 166: pw_logical_and_oo ::= pw_trinary_expr_oo ";
	}
}

/**
 *
 */
class Rule167 extends Rule {
	public int getNumber() { return 167; }
	public String getLhs() { return "pw_logical_and_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_logical_and_oo";
            case 1: return "T_LOGICAL_AND";
            case 2: return "pw_trinary_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 167: pw_logical_and_oo ::= pw_logical_and_oo T_LOGICAL_AND pw_trinary_expr_oo ";
	}
}

/**
 *
 */
class Rule168 extends Rule {
	public int getNumber() { return 168; }
	public String getLhs() { return "pw_print"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_PRINT";
            case 1: return "pw_trinary_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 168: pw_print ::= T_PRINT pw_trinary_expr_oo ";
	}
}

/**
 *
 */
class Rule169 extends Rule {
	public int getNumber() { return 169; }
	public String getLhs() { return "pw_assignment"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "list_expression";
            case 1: return "T_EQUAL";
            case 2: return "pw_trinary_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 169: pw_assignment ::= list_expression T_EQUAL pw_trinary_expr_oo ";
	}
}

/**
 *
 */
class Rule170 extends Rule {
	public int getNumber() { return 170; }
	public String getLhs() { return "pw_assignment"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_EQUAL";
            case 2: return "pw_trinary_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 170: pw_assignment ::= variable T_EQUAL pw_trinary_expr_oo ";
	}
}

/**
 *
 */
class Rule171 extends Rule {
	public int getNumber() { return 171; }
	public String getLhs() { return "pw_assignment"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_EQUAL";
            case 2: return "T_AMPERSAND";
            case 3: return "variable";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 171: pw_assignment ::= variable T_EQUAL T_AMPERSAND variable ";
	}
}

/**
 *
 */
class Rule172 extends Rule {
	public int getNumber() { return 172; }
	public String getLhs() { return "pw_assignment"; }
	public int getSize() { return 6; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_EQUAL";
            case 2: return "T_AMPERSAND";
            case 3: return "T_NEW";
            case 4: return "class_name_reference";
            case 5: return "ctor_arguments";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 5");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 172: pw_assignment ::= variable T_EQUAL T_AMPERSAND T_NEW class_name_reference ctor_arguments ";
	}
}

/**
 *
 */
class Rule173 extends Rule {
	public int getNumber() { return 173; }
	public String getLhs() { return "pw_assignment"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_PLUS_EQUAL";
            case 2: return "pw_trinary_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 173: pw_assignment ::= variable T_PLUS_EQUAL pw_trinary_expr_oo ";
	}
}

/**
 *
 */
class Rule174 extends Rule {
	public int getNumber() { return 174; }
	public String getLhs() { return "pw_assignment"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_MINUS_EQUAL";
            case 2: return "pw_trinary_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 174: pw_assignment ::= variable T_MINUS_EQUAL pw_trinary_expr_oo ";
	}
}

/**
 *
 */
class Rule175 extends Rule {
	public int getNumber() { return 175; }
	public String getLhs() { return "pw_assignment"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_MUL_EQUAL";
            case 2: return "pw_trinary_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 175: pw_assignment ::= variable T_MUL_EQUAL pw_trinary_expr_oo ";
	}
}

/**
 *
 */
class Rule176 extends Rule {
	public int getNumber() { return 176; }
	public String getLhs() { return "pw_assignment"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_DIV_EQUAL";
            case 2: return "pw_trinary_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 176: pw_assignment ::= variable T_DIV_EQUAL pw_trinary_expr_oo ";
	}
}

/**
 *
 */
class Rule177 extends Rule {
	public int getNumber() { return 177; }
	public String getLhs() { return "pw_assignment"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_CONCAT_EQUAL";
            case 2: return "pw_trinary_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 177: pw_assignment ::= variable T_CONCAT_EQUAL pw_trinary_expr_oo ";
	}
}

/**
 *
 */
class Rule178 extends Rule {
	public int getNumber() { return 178; }
	public String getLhs() { return "pw_assignment"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_MOD_EQUAL";
            case 2: return "pw_trinary_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 178: pw_assignment ::= variable T_MOD_EQUAL pw_trinary_expr_oo ";
	}
}

/**
 *
 */
class Rule179 extends Rule {
	public int getNumber() { return 179; }
	public String getLhs() { return "pw_assignment"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_AND_EQUAL";
            case 2: return "pw_trinary_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 179: pw_assignment ::= variable T_AND_EQUAL pw_trinary_expr_oo ";
	}
}

/**
 *
 */
class Rule180 extends Rule {
	public int getNumber() { return 180; }
	public String getLhs() { return "pw_assignment"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_OR_EQUAL";
            case 2: return "pw_trinary_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 180: pw_assignment ::= variable T_OR_EQUAL pw_trinary_expr_oo ";
	}
}

/**
 *
 */
class Rule181 extends Rule {
	public int getNumber() { return 181; }
	public String getLhs() { return "pw_assignment"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_XOR_EQUAL";
            case 2: return "pw_trinary_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 181: pw_assignment ::= variable T_XOR_EQUAL pw_trinary_expr_oo ";
	}
}

/**
 *
 */
class Rule182 extends Rule {
	public int getNumber() { return 182; }
	public String getLhs() { return "pw_assignment"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_SL_EQUAL";
            case 2: return "pw_trinary_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 182: pw_assignment ::= variable T_SL_EQUAL pw_trinary_expr_oo ";
	}
}

/**
 *
 */
class Rule183 extends Rule {
	public int getNumber() { return 183; }
	public String getLhs() { return "pw_assignment"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_SR_EQUAL";
            case 2: return "pw_trinary_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 183: pw_assignment ::= variable T_SR_EQUAL pw_trinary_expr_oo ";
	}
}

/**
 *
 */
class Rule184 extends Rule {
	public int getNumber() { return 184; }
	public String getLhs() { return "pw_trinary_expr_oo"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_boolean_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 184: pw_trinary_expr_oo ::= pw_boolean_expr_oo ";
	}
}

/**
 *
 */
class Rule185 extends Rule {
	public int getNumber() { return 185; }
	public String getLhs() { return "pw_trinary_expr_oo"; }
	public int getSize() { return 5; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_trinary_expr_oo";
            case 1: return "T_QUESTION";
            case 2: return "pw_logical_expr_oo";
            case 3: return "T_COLON";
            case 4: return "pw_logical_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 4");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 185: pw_trinary_expr_oo ::= pw_trinary_expr_oo T_QUESTION pw_logical_expr_oo T_COLON pw_logical_expr_oo ";
	}
}

/**
 *
 */
class Rule186 extends Rule {
	public int getNumber() { return 186; }
	public String getLhs() { return "pw_trinary_expr_oo"; }
	public int getSize() { return 5; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_QUESTION";
            case 2: return "pw_logical_expr_oo";
            case 3: return "T_COLON";
            case 4: return "pw_logical_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 4");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 186: pw_trinary_expr_oo ::= variable T_QUESTION pw_logical_expr_oo T_COLON pw_logical_expr_oo ";
	}
}

/**
 *
 */
class Rule187 extends Rule {
	public int getNumber() { return 187; }
	public String getLhs() { return "pw_boolean_expr_oo"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_boolean_or_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 187: pw_boolean_expr_oo ::= pw_boolean_or_oo ";
	}
}

/**
 *
 */
class Rule188 extends Rule {
	public int getNumber() { return 188; }
	public String getLhs() { return "pw_boolean_or_oo"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_boolean_and_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 188: pw_boolean_or_oo ::= pw_boolean_and_oo ";
	}
}

/**
 *
 */
class Rule189 extends Rule {
	public int getNumber() { return 189; }
	public String getLhs() { return "pw_boolean_or_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_boolean_or_oo";
            case 1: return "T_BOOLEAN_OR";
            case 2: return "pw_boolean_and_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 189: pw_boolean_or_oo ::= pw_boolean_or_oo T_BOOLEAN_OR pw_boolean_and_oo ";
	}
}

/**
 *
 */
class Rule190 extends Rule {
	public int getNumber() { return 190; }
	public String getLhs() { return "pw_boolean_or_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_BOOLEAN_OR";
            case 2: return "pw_boolean_and_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 190: pw_boolean_or_oo ::= variable T_BOOLEAN_OR pw_boolean_and_oo ";
	}
}

/**
 *
 */
class Rule191 extends Rule {
	public int getNumber() { return 191; }
	public String getLhs() { return "pw_boolean_and_oo"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_boolean_bitwise_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 191: pw_boolean_and_oo ::= pw_boolean_bitwise_expr_oo ";
	}
}

/**
 *
 */
class Rule192 extends Rule {
	public int getNumber() { return 192; }
	public String getLhs() { return "pw_boolean_and_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_boolean_and_oo";
            case 1: return "T_BOOLEAN_AND";
            case 2: return "pw_boolean_bitwise_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 192: pw_boolean_and_oo ::= pw_boolean_and_oo T_BOOLEAN_AND pw_boolean_bitwise_expr_oo ";
	}
}

/**
 *
 */
class Rule193 extends Rule {
	public int getNumber() { return 193; }
	public String getLhs() { return "pw_boolean_and_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_BOOLEAN_AND";
            case 2: return "pw_boolean_bitwise_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 193: pw_boolean_and_oo ::= variable T_BOOLEAN_AND pw_boolean_bitwise_expr_oo ";
	}
}

/**
 *
 */
class Rule194 extends Rule {
	public int getNumber() { return 194; }
	public String getLhs() { return "pw_boolean_bitwise_expr_oo"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_boolean_bitwise_or_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 194: pw_boolean_bitwise_expr_oo ::= pw_boolean_bitwise_or_oo ";
	}
}

/**
 *
 */
class Rule195 extends Rule {
	public int getNumber() { return 195; }
	public String getLhs() { return "pw_boolean_bitwise_or_oo"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_boolean_bitwise_xor_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 195: pw_boolean_bitwise_or_oo ::= pw_boolean_bitwise_xor_oo ";
	}
}

/**
 *
 */
class Rule196 extends Rule {
	public int getNumber() { return 196; }
	public String getLhs() { return "pw_boolean_bitwise_or_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_boolean_bitwise_or_oo";
            case 1: return "T_VERTICAL_LINE";
            case 2: return "pw_boolean_bitwise_xor_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 196: pw_boolean_bitwise_or_oo ::= pw_boolean_bitwise_or_oo T_VERTICAL_LINE pw_boolean_bitwise_xor_oo ";
	}
}

/**
 *
 */
class Rule197 extends Rule {
	public int getNumber() { return 197; }
	public String getLhs() { return "pw_boolean_bitwise_or_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_VERTICAL_LINE";
            case 2: return "pw_boolean_bitwise_xor_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 197: pw_boolean_bitwise_or_oo ::= variable T_VERTICAL_LINE pw_boolean_bitwise_xor_oo ";
	}
}

/**
 *
 */
class Rule198 extends Rule {
	public int getNumber() { return 198; }
	public String getLhs() { return "pw_boolean_bitwise_xor_oo"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_boolean_bitwise_and_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 198: pw_boolean_bitwise_xor_oo ::= pw_boolean_bitwise_and_oo ";
	}
}

/**
 *
 */
class Rule199 extends Rule {
	public int getNumber() { return 199; }
	public String getLhs() { return "pw_boolean_bitwise_xor_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_boolean_bitwise_xor_oo";
            case 1: return "T_CARET";
            case 2: return "pw_boolean_bitwise_and_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 199: pw_boolean_bitwise_xor_oo ::= pw_boolean_bitwise_xor_oo T_CARET pw_boolean_bitwise_and_oo ";
	}
}

/**
 *
 */
class Rule200 extends Rule {
	public int getNumber() { return 200; }
	public String getLhs() { return "pw_boolean_bitwise_xor_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_CARET";
            case 2: return "pw_boolean_bitwise_and_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 200: pw_boolean_bitwise_xor_oo ::= variable T_CARET pw_boolean_bitwise_and_oo ";
	}
}

/**
 *
 */
class Rule201 extends Rule {
	public int getNumber() { return 201; }
	public String getLhs() { return "pw_boolean_bitwise_and_oo"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_equal_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 201: pw_boolean_bitwise_and_oo ::= pw_equal_expr_oo ";
	}
}

/**
 *
 */
class Rule202 extends Rule {
	public int getNumber() { return 202; }
	public String getLhs() { return "pw_boolean_bitwise_and_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_boolean_bitwise_and_oo";
            case 1: return "T_AMPERSAND";
            case 2: return "pw_equal_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 202: pw_boolean_bitwise_and_oo ::= pw_boolean_bitwise_and_oo T_AMPERSAND pw_equal_expr_oo ";
	}
}

/**
 *
 */
class Rule203 extends Rule {
	public int getNumber() { return 203; }
	public String getLhs() { return "pw_boolean_bitwise_and_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_AMPERSAND";
            case 2: return "pw_equal_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 203: pw_boolean_bitwise_and_oo ::= variable T_AMPERSAND pw_equal_expr_oo ";
	}
}

/**
 *
 */
class Rule204 extends Rule {
	public int getNumber() { return 204; }
	public String getLhs() { return "pw_equal_expr_oo"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_compare_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 204: pw_equal_expr_oo ::= pw_compare_expr_oo ";
	}
}

/**
 *
 */
class Rule205 extends Rule {
	public int getNumber() { return 205; }
	public String getLhs() { return "pw_equal_expr_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_compare_expr_oo";
            case 1: return "T_IS_IDENTICAL";
            case 2: return "pw_compare_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 205: pw_equal_expr_oo ::= pw_compare_expr_oo T_IS_IDENTICAL pw_compare_expr_oo ";
	}
}

/**
 *
 */
class Rule206 extends Rule {
	public int getNumber() { return 206; }
	public String getLhs() { return "pw_equal_expr_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_compare_expr_oo";
            case 1: return "T_IS_NOT_IDENTICAL";
            case 2: return "pw_compare_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 206: pw_equal_expr_oo ::= pw_compare_expr_oo T_IS_NOT_IDENTICAL pw_compare_expr_oo ";
	}
}

/**
 *
 */
class Rule207 extends Rule {
	public int getNumber() { return 207; }
	public String getLhs() { return "pw_equal_expr_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_compare_expr_oo";
            case 1: return "T_IS_EQUAL";
            case 2: return "pw_compare_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 207: pw_equal_expr_oo ::= pw_compare_expr_oo T_IS_EQUAL pw_compare_expr_oo ";
	}
}

/**
 *
 */
class Rule208 extends Rule {
	public int getNumber() { return 208; }
	public String getLhs() { return "pw_equal_expr_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_compare_expr_oo";
            case 1: return "T_IS_NOT_EQUAL";
            case 2: return "pw_compare_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 208: pw_equal_expr_oo ::= pw_compare_expr_oo T_IS_NOT_EQUAL pw_compare_expr_oo ";
	}
}

/**
 *
 */
class Rule209 extends Rule {
	public int getNumber() { return 209; }
	public String getLhs() { return "pw_equal_expr_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_compare_expr_oo";
            case 1: return "T_SHR_EQUAL";
            case 2: return "pw_compare_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 209: pw_equal_expr_oo ::= pw_compare_expr_oo T_SHR_EQUAL pw_compare_expr_oo ";
	}
}

/**
 *
 */
class Rule210 extends Rule {
	public int getNumber() { return 210; }
	public String getLhs() { return "pw_compare_expr_oo"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_shift_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 210: pw_compare_expr_oo ::= pw_shift_expr_oo ";
	}
}

/**
 *
 */
class Rule211 extends Rule {
	public int getNumber() { return 211; }
	public String getLhs() { return "pw_compare_expr_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_shift_expr_oo";
            case 1: return "T_LT";
            case 2: return "pw_shift_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 211: pw_compare_expr_oo ::= pw_shift_expr_oo T_LT pw_shift_expr_oo ";
	}
}

/**
 *
 */
class Rule212 extends Rule {
	public int getNumber() { return 212; }
	public String getLhs() { return "pw_compare_expr_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_shift_expr_oo";
            case 1: return "T_IS_SMALLER_OR_EQUAL";
            case 2: return "pw_shift_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 212: pw_compare_expr_oo ::= pw_shift_expr_oo T_IS_SMALLER_OR_EQUAL pw_shift_expr_oo ";
	}
}

/**
 *
 */
class Rule213 extends Rule {
	public int getNumber() { return 213; }
	public String getLhs() { return "pw_compare_expr_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_shift_expr_oo";
            case 1: return "T_GT";
            case 2: return "pw_shift_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 213: pw_compare_expr_oo ::= pw_shift_expr_oo T_GT pw_shift_expr_oo ";
	}
}

/**
 *
 */
class Rule214 extends Rule {
	public int getNumber() { return 214; }
	public String getLhs() { return "pw_compare_expr_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_shift_expr_oo";
            case 1: return "T_IS_GREATER_OR_EQUAL";
            case 2: return "pw_shift_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 214: pw_compare_expr_oo ::= pw_shift_expr_oo T_IS_GREATER_OR_EQUAL pw_shift_expr_oo ";
	}
}

/**
 *
 */
class Rule215 extends Rule {
	public int getNumber() { return 215; }
	public String getLhs() { return "pw_shift_expr_oo"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_additive_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 215: pw_shift_expr_oo ::= pw_additive_expr_oo ";
	}
}

/**
 *
 */
class Rule216 extends Rule {
	public int getNumber() { return 216; }
	public String getLhs() { return "pw_shift_expr_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_shift_expr_oo";
            case 1: return "T_SL";
            case 2: return "pw_additive_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 216: pw_shift_expr_oo ::= pw_shift_expr_oo T_SL pw_additive_expr_oo ";
	}
}

/**
 *
 */
class Rule217 extends Rule {
	public int getNumber() { return 217; }
	public String getLhs() { return "pw_shift_expr_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_SL";
            case 2: return "pw_additive_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 217: pw_shift_expr_oo ::= variable T_SL pw_additive_expr_oo ";
	}
}

/**
 *
 */
class Rule218 extends Rule {
	public int getNumber() { return 218; }
	public String getLhs() { return "pw_shift_expr_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_shift_expr_oo";
            case 1: return "T_SR";
            case 2: return "pw_additive_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 218: pw_shift_expr_oo ::= pw_shift_expr_oo T_SR pw_additive_expr_oo ";
	}
}

/**
 *
 */
class Rule219 extends Rule {
	public int getNumber() { return 219; }
	public String getLhs() { return "pw_shift_expr_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_SR";
            case 2: return "pw_additive_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 219: pw_shift_expr_oo ::= variable T_SR pw_additive_expr_oo ";
	}
}

/**
 *
 */
class Rule220 extends Rule {
	public int getNumber() { return 220; }
	public String getLhs() { return "pw_additive_expr_oo"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_productive_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 220: pw_additive_expr_oo ::= pw_productive_expr_oo ";
	}
}

/**
 *
 */
class Rule221 extends Rule {
	public int getNumber() { return 221; }
	public String getLhs() { return "pw_additive_expr_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_additive_expr_oo";
            case 1: return "T_PLUS";
            case 2: return "pw_productive_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 221: pw_additive_expr_oo ::= pw_additive_expr_oo T_PLUS pw_productive_expr_oo ";
	}
}

/**
 *
 */
class Rule222 extends Rule {
	public int getNumber() { return 222; }
	public String getLhs() { return "pw_additive_expr_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_PLUS";
            case 2: return "pw_productive_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 222: pw_additive_expr_oo ::= variable T_PLUS pw_productive_expr_oo ";
	}
}

/**
 *
 */
class Rule223 extends Rule {
	public int getNumber() { return 223; }
	public String getLhs() { return "pw_additive_expr_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_additive_expr_oo";
            case 1: return "T_MINUS";
            case 2: return "pw_productive_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 223: pw_additive_expr_oo ::= pw_additive_expr_oo T_MINUS pw_productive_expr_oo ";
	}
}

/**
 *
 */
class Rule224 extends Rule {
	public int getNumber() { return 224; }
	public String getLhs() { return "pw_additive_expr_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_MINUS";
            case 2: return "pw_productive_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 224: pw_additive_expr_oo ::= variable T_MINUS pw_productive_expr_oo ";
	}
}

/**
 *
 */
class Rule225 extends Rule {
	public int getNumber() { return 225; }
	public String getLhs() { return "pw_additive_expr_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_additive_expr_oo";
            case 1: return "T_PERIOD";
            case 2: return "pw_productive_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 225: pw_additive_expr_oo ::= pw_additive_expr_oo T_PERIOD pw_productive_expr_oo ";
	}
}

/**
 *
 */
class Rule226 extends Rule {
	public int getNumber() { return 226; }
	public String getLhs() { return "pw_additive_expr_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_PERIOD";
            case 2: return "pw_productive_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 226: pw_additive_expr_oo ::= variable T_PERIOD pw_productive_expr_oo ";
	}
}

/**
 *
 */
class Rule227 extends Rule {
	public int getNumber() { return 227; }
	public String getLhs() { return "pw_productive_expr_oo"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_instanceof_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 227: pw_productive_expr_oo ::= pw_instanceof_oo ";
	}
}

/**
 *
 */
class Rule228 extends Rule {
	public int getNumber() { return 228; }
	public String getLhs() { return "pw_productive_expr_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_productive_expr_oo";
            case 1: return "T_ASTERISK";
            case 2: return "pw_instanceof_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 228: pw_productive_expr_oo ::= pw_productive_expr_oo T_ASTERISK pw_instanceof_oo ";
	}
}

/**
 *
 */
class Rule229 extends Rule {
	public int getNumber() { return 229; }
	public String getLhs() { return "pw_productive_expr_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_ASTERISK";
            case 2: return "pw_instanceof_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 229: pw_productive_expr_oo ::= variable T_ASTERISK pw_instanceof_oo ";
	}
}

/**
 *
 */
class Rule230 extends Rule {
	public int getNumber() { return 230; }
	public String getLhs() { return "pw_productive_expr_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_productive_expr_oo";
            case 1: return "T_SLASH";
            case 2: return "pw_instanceof_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 230: pw_productive_expr_oo ::= pw_productive_expr_oo T_SLASH pw_instanceof_oo ";
	}
}

/**
 *
 */
class Rule231 extends Rule {
	public int getNumber() { return 231; }
	public String getLhs() { return "pw_productive_expr_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_SLASH";
            case 2: return "pw_instanceof_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 231: pw_productive_expr_oo ::= variable T_SLASH pw_instanceof_oo ";
	}
}

/**
 *
 */
class Rule232 extends Rule {
	public int getNumber() { return 232; }
	public String getLhs() { return "pw_productive_expr_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_productive_expr_oo";
            case 1: return "T_PERCENT";
            case 2: return "pw_instanceof_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 232: pw_productive_expr_oo ::= pw_productive_expr_oo T_PERCENT pw_instanceof_oo ";
	}
}

/**
 *
 */
class Rule233 extends Rule {
	public int getNumber() { return 233; }
	public String getLhs() { return "pw_productive_expr_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_PERCENT";
            case 2: return "pw_instanceof_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 233: pw_productive_expr_oo ::= variable T_PERCENT pw_instanceof_oo ";
	}
}

/**
 *
 */
class Rule234 extends Rule {
	public int getNumber() { return 234; }
	public String getLhs() { return "pw_unary_plus_expr"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_PLUS";
            case 1: return "pw_instanceof_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 234: pw_unary_plus_expr ::= T_PLUS pw_instanceof_oo ";
	}
}

/**
 *
 */
class Rule235 extends Rule {
	public int getNumber() { return 235; }
	public String getLhs() { return "pw_unary_minus_expr"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_MINUS";
            case 1: return "pw_instanceof_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 235: pw_unary_minus_expr ::= T_MINUS pw_instanceof_oo ";
	}
}

/**
 *
 */
class Rule236 extends Rule {
	public int getNumber() { return 236; }
	public String getLhs() { return "pw_not"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_EXCLAMATION";
            case 1: return "pw_instanceof_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 236: pw_not ::= T_EXCLAMATION pw_instanceof_oo ";
	}
}

/**
 *
 */
class Rule237 extends Rule {
	public int getNumber() { return 237; }
	public String getLhs() { return "pw_instanceof_oo"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_postconversion_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 237: pw_instanceof_oo ::= pw_postconversion_expr_oo ";
	}
}

/**
 *
 */
class Rule238 extends Rule {
	public int getNumber() { return 238; }
	public String getLhs() { return "pw_instanceof_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_postconversion_expr_oo";
            case 1: return "T_INSTANCEOF";
            case 2: return "class_name_reference";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 238: pw_instanceof_oo ::= pw_postconversion_expr_oo T_INSTANCEOF class_name_reference ";
	}
}

/**
 *
 */
class Rule239 extends Rule {
	public int getNumber() { return 239; }
	public String getLhs() { return "pw_preconversion_expr"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_TILDE";
            case 1: return "pw_postconversion_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 239: pw_preconversion_expr ::= T_TILDE pw_postconversion_expr_oo ";
	}
}

/**
 *
 */
class Rule240 extends Rule {
	public int getNumber() { return 240; }
	public String getLhs() { return "pw_preconversion_expr"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_INC";
            case 1: return "variable";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 240: pw_preconversion_expr ::= T_INC variable ";
	}
}

/**
 *
 */
class Rule241 extends Rule {
	public int getNumber() { return 241; }
	public String getLhs() { return "pw_preconversion_expr"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_DEC";
            case 1: return "variable";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 241: pw_preconversion_expr ::= T_DEC variable ";
	}
}

/**
 *
 */
class Rule242 extends Rule {
	public int getNumber() { return 242; }
	public String getLhs() { return "pw_preconversion_expr"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_INT_CAST";
            case 1: return "pw_postconversion_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 242: pw_preconversion_expr ::= T_INT_CAST pw_postconversion_expr_oo ";
	}
}

/**
 *
 */
class Rule243 extends Rule {
	public int getNumber() { return 243; }
	public String getLhs() { return "pw_preconversion_expr"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_DOUBLE_CAST";
            case 1: return "pw_postconversion_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 243: pw_preconversion_expr ::= T_DOUBLE_CAST pw_postconversion_expr_oo ";
	}
}

/**
 *
 */
class Rule244 extends Rule {
	public int getNumber() { return 244; }
	public String getLhs() { return "pw_preconversion_expr"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_STRING_CAST";
            case 1: return "pw_postconversion_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 244: pw_preconversion_expr ::= T_STRING_CAST pw_postconversion_expr_oo ";
	}
}

/**
 *
 */
class Rule245 extends Rule {
	public int getNumber() { return 245; }
	public String getLhs() { return "pw_preconversion_expr"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_ARRAY_CAST";
            case 1: return "pw_postconversion_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 245: pw_preconversion_expr ::= T_ARRAY_CAST pw_postconversion_expr_oo ";
	}
}

/**
 *
 */
class Rule246 extends Rule {
	public int getNumber() { return 246; }
	public String getLhs() { return "pw_preconversion_expr"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_OBJECT_CAST";
            case 1: return "pw_postconversion_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 246: pw_preconversion_expr ::= T_OBJECT_CAST pw_postconversion_expr_oo ";
	}
}

/**
 *
 */
class Rule247 extends Rule {
	public int getNumber() { return 247; }
	public String getLhs() { return "pw_preconversion_expr"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_BOOL_CAST";
            case 1: return "pw_postconversion_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 247: pw_preconversion_expr ::= T_BOOL_CAST pw_postconversion_expr_oo ";
	}
}

/**
 *
 */
class Rule248 extends Rule {
	public int getNumber() { return 248; }
	public String getLhs() { return "pw_preconversion_expr"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_UNSET_CAST";
            case 1: return "pw_postconversion_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 248: pw_preconversion_expr ::= T_UNSET_CAST pw_postconversion_expr_oo ";
	}
}

/**
 *
 */
class Rule249 extends Rule {
	public int getNumber() { return 249; }
	public String getLhs() { return "pw_preconversion_expr"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_FLOAT_CAST";
            case 1: return "pw_postconversion_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 249: pw_preconversion_expr ::= T_FLOAT_CAST pw_postconversion_expr_oo ";
	}
}

/**
 *
 */
class Rule250 extends Rule {
	public int getNumber() { return 250; }
	public String getLhs() { return "pw_preconversion_expr"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_AT_MARK";
            case 1: return "pw_postconversion_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 250: pw_preconversion_expr ::= T_AT_MARK pw_postconversion_expr_oo ";
	}
}

/**
 *
 */
class Rule251 extends Rule {
	public int getNumber() { return 251; }
	public String getLhs() { return "pw_postconversion_expr_oo"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_functions_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 251: pw_postconversion_expr_oo ::= pw_functions_oo ";
	}
}

/**
 *
 */
class Rule252 extends Rule {
	public int getNumber() { return 252; }
	public String getLhs() { return "pw_postconversion_expr_oo"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_INC";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 252: pw_postconversion_expr_oo ::= variable T_INC ";
	}
}

/**
 *
 */
class Rule253 extends Rule {
	public int getNumber() { return 253; }
	public String getLhs() { return "pw_postconversion_expr_oo"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            case 1: return "T_DEC";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 253: pw_postconversion_expr_oo ::= variable T_DEC ";
	}
}

/**
 *
 */
class Rule254 extends Rule {
	public int getNumber() { return 254; }
	public String getLhs() { return "pw_functions_oo"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_allocation_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 254: pw_functions_oo ::= pw_allocation_expr_oo ";
	}
}

/**
 *
 */
class Rule255 extends Rule {
	public int getNumber() { return 255; }
	public String getLhs() { return "pw_functions_oo"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_ISSET";
            case 1: return "T_LPAR";
            case 2: return "isset_variables";
            case 3: return "T_RPAR";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 255: pw_functions_oo ::= T_ISSET T_LPAR isset_variables T_RPAR ";
	}
}

/**
 *
 */
class Rule256 extends Rule {
	public int getNumber() { return 256; }
	public String getLhs() { return "pw_functions_oo"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_EMPTY";
            case 1: return "T_LPAR";
            case 2: return "variable";
            case 3: return "T_RPAR";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 256: pw_functions_oo ::= T_EMPTY T_LPAR variable T_RPAR ";
	}
}

/**
 *
 */
class Rule257 extends Rule {
	public int getNumber() { return 257; }
	public String getLhs() { return "pw_functions_oo"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_EVAL";
            case 1: return "T_LPAR";
            case 2: return "expr";
            case 3: return "T_RPAR";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 257: pw_functions_oo ::= T_EVAL T_LPAR expr T_RPAR ";
	}
}

/**
 *
 */
class Rule258 extends Rule {
	public int getNumber() { return 258; }
	public String getLhs() { return "pw_functions_oo"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_INCLUDE";
            case 1: return "pw_logical_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 258: pw_functions_oo ::= T_INCLUDE pw_logical_expr_oo ";
	}
}

/**
 *
 */
class Rule259 extends Rule {
	public int getNumber() { return 259; }
	public String getLhs() { return "pw_functions_oo"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_INCLUDE_ONCE";
            case 1: return "pw_logical_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 259: pw_functions_oo ::= T_INCLUDE_ONCE pw_logical_expr_oo ";
	}
}

/**
 *
 */
class Rule260 extends Rule {
	public int getNumber() { return 260; }
	public String getLhs() { return "pw_functions_oo"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_REQUIRE";
            case 1: return "pw_logical_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 260: pw_functions_oo ::= T_REQUIRE pw_logical_expr_oo ";
	}
}

/**
 *
 */
class Rule261 extends Rule {
	public int getNumber() { return 261; }
	public String getLhs() { return "pw_functions_oo"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_REQUIRE_ONCE";
            case 1: return "pw_logical_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 261: pw_functions_oo ::= T_REQUIRE_ONCE pw_logical_expr_oo ";
	}
}

/**
 *
 */
class Rule262 extends Rule {
	public int getNumber() { return 262; }
	public String getLhs() { return "pw_allocation_expr_oo"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_others";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 262: pw_allocation_expr_oo ::= pw_others ";
	}
}

/**
 *
 */
class Rule263 extends Rule {
	public int getNumber() { return 263; }
	public String getLhs() { return "pw_allocation_expr_oo"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_NEW";
            case 1: return "class_name_reference";
            case 2: return "ctor_arguments";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 263: pw_allocation_expr_oo ::= T_NEW class_name_reference ctor_arguments ";
	}
}

/**
 *
 */
class Rule264 extends Rule {
	public int getNumber() { return 264; }
	public String getLhs() { return "pw_allocation_expr_oo"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_CLONE";
            case 1: return "expr";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 264: pw_allocation_expr_oo ::= T_CLONE expr ";
	}
}

/**
 *
 */
class Rule265 extends Rule {
	public int getNumber() { return 265; }
	public String getLhs() { return "pw_others"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_EXIT";
            case 1: return "exit_expr";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 265: pw_others ::= T_EXIT exit_expr ";
	}
}

/**
 *
 */
class Rule266 extends Rule {
	public int getNumber() { return 266; }
	public String getLhs() { return "pw_others"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_DIE";
            case 1: return "exit_expr";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 266: pw_others ::= T_DIE exit_expr ";
	}
}

/**
 *
 */
class Rule267 extends Rule {
	public int getNumber() { return 267; }
	public String getLhs() { return "pw_others"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_BACK_QUOTE";
            case 1: return "encaps_list";
            case 2: return "T_BACK_QUOTE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 267: pw_others ::= T_BACK_QUOTE encaps_list T_BACK_QUOTE ";
	}
}

/**
 *
 */
class Rule268 extends Rule {
	public int getNumber() { return 268; }
	public String getLhs() { return "pw_others"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_LPAR";
            case 1: return "expr";
            case 2: return "T_RPAR";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 268: pw_others ::= T_LPAR expr T_RPAR ";
	}
}

/**
 *
 */
class Rule269 extends Rule {
	public int getNumber() { return 269; }
	public String getLhs() { return "pw_others"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_ARRAY";
            case 1: return "T_LPAR";
            case 2: return "array_pair_list";
            case 3: return "T_RPAR";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 269: pw_others ::= T_ARRAY T_LPAR array_pair_list T_RPAR ";
	}
}

/**
 *
 */
class Rule270 extends Rule {
	public int getNumber() { return 270; }
	public String getLhs() { return "pw_others"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "scalar";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 270: pw_others ::= scalar ";
	}
}

/**
 *
 */
class Rule271 extends Rule {
	public int getNumber() { return 271; }
	public String getLhs() { return "pw_others"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_print";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 271: pw_others ::= pw_print ";
	}
}

/**
 *
 */
class Rule272 extends Rule {
	public int getNumber() { return 272; }
	public String getLhs() { return "pw_others"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "list_expression";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 272: pw_others ::= list_expression ";
	}
}

/**
 *
 */
class Rule273 extends Rule {
	public int getNumber() { return 273; }
	public String getLhs() { return "pw_others"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 273: pw_others ::= variable ";
	}
}

/**
 *
 */
class Rule274 extends Rule {
	public int getNumber() { return 274; }
	public String getLhs() { return "pw_others"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_assignment";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 274: pw_others ::= pw_assignment ";
	}
}

/**
 *
 */
class Rule275 extends Rule {
	public int getNumber() { return 275; }
	public String getLhs() { return "pw_others"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_unary_plus_expr";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 275: pw_others ::= pw_unary_plus_expr ";
	}
}

/**
 *
 */
class Rule276 extends Rule {
	public int getNumber() { return 276; }
	public String getLhs() { return "pw_others"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_unary_minus_expr";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 276: pw_others ::= pw_unary_minus_expr ";
	}
}

/**
 *
 */
class Rule277 extends Rule {
	public int getNumber() { return 277; }
	public String getLhs() { return "pw_others"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_preconversion_expr";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 277: pw_others ::= pw_preconversion_expr ";
	}
}

/**
 *
 */
class Rule278 extends Rule {
	public int getNumber() { return 278; }
	public String getLhs() { return "pw_others"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_not";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 278: pw_others ::= pw_not ";
	}
}

/**
 *
 */
class Rule279 extends Rule {
	public int getNumber() { return 279; }
	public String getLhs() { return "function_call"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_STRING";
            case 1: return "T_LPAR";
            case 2: return "function_call_parameter_list";
            case 3: return "T_RPAR";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 279: function_call ::= T_STRING T_LPAR function_call_parameter_list T_RPAR ";
	}
}

/**
 *
 */
class Rule280 extends Rule {
	public int getNumber() { return 280; }
	public String getLhs() { return "function_call"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable_without_objects";
            case 1: return "T_LPAR";
            case 2: return "function_call_parameter_list";
            case 3: return "T_RPAR";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 280: function_call ::= variable_without_objects T_LPAR function_call_parameter_list T_RPAR ";
	}
}

/**
 *
 */
class Rule281 extends Rule {
	public int getNumber() { return 281; }
	public String getLhs() { return "class_function_call"; }
	public int getSize() { return 6; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "fully_qualified_class_name";
            case 1: return "T_PAAMAYIM_NEKUDOTAYIM";
            case 2: return "T_STRING";
            case 3: return "T_LPAR";
            case 4: return "function_call_parameter_list";
            case 5: return "T_RPAR";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 5");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 281: class_function_call ::= fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING T_LPAR function_call_parameter_list T_RPAR ";
	}
}

/**
 *
 */
class Rule282 extends Rule {
	public int getNumber() { return 282; }
	public String getLhs() { return "class_function_call"; }
	public int getSize() { return 6; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "fully_qualified_class_name";
            case 1: return "T_PAAMAYIM_NEKUDOTAYIM";
            case 2: return "variable_without_objects";
            case 3: return "T_LPAR";
            case 4: return "function_call_parameter_list";
            case 5: return "T_RPAR";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 5");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 282: class_function_call ::= fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects T_LPAR function_call_parameter_list T_RPAR ";
	}
}

/**
 *
 */
class Rule283 extends Rule {
	public int getNumber() { return 283; }
	public String getLhs() { return "fully_qualified_class_name"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_STRING";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 283: fully_qualified_class_name ::= T_STRING ";
	}
}

/**
 *
 */
class Rule284 extends Rule {
	public int getNumber() { return 284; }
	public String getLhs() { return "class_name_reference"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_STRING";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 284: class_name_reference ::= T_STRING ";
	}
}

/**
 *
 */
class Rule285 extends Rule {
	public int getNumber() { return 285; }
	public String getLhs() { return "class_name_reference"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "dynamic_class_name_reference";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 285: class_name_reference ::= dynamic_class_name_reference ";
	}
}

/**
 *
 */
class Rule286 extends Rule {
	public int getNumber() { return 286; }
	public String getLhs() { return "dynamic_class_name_reference"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "base_variable";
            case 1: return "T_OBJECT_OPERATOR";
            case 2: return "object_property";
            case 3: return "dynamic_class_name_variable_properties";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 286: dynamic_class_name_reference ::= base_variable T_OBJECT_OPERATOR object_property dynamic_class_name_variable_properties ";
	}
}

/**
 *
 */
class Rule287 extends Rule {
	public int getNumber() { return 287; }
	public String getLhs() { return "dynamic_class_name_reference"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "base_variable";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 287: dynamic_class_name_reference ::= base_variable ";
	}
}

/**
 *
 */
class Rule288 extends Rule {
	public int getNumber() { return 288; }
	public String getLhs() { return "dynamic_class_name_variable_properties"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "dynamic_class_name_variable_properties";
            case 1: return "dynamic_class_name_variable_property";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 288: dynamic_class_name_variable_properties ::= dynamic_class_name_variable_properties dynamic_class_name_variable_property ";
	}
}

/**
 *
 */
class Rule289 extends Rule {
	public int getNumber() { return 289; }
	public String getLhs() { return "dynamic_class_name_variable_properties"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 289: dynamic_class_name_variable_properties ::= ";
	}
}

/**
 *
 */
class Rule290 extends Rule {
	public int getNumber() { return 290; }
	public String getLhs() { return "dynamic_class_name_variable_property"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_OBJECT_OPERATOR";
            case 1: return "object_property";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 290: dynamic_class_name_variable_property ::= T_OBJECT_OPERATOR object_property ";
	}
}

/**
 *
 */
class Rule291 extends Rule {
	public int getNumber() { return 291; }
	public String getLhs() { return "exit_expr"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_LPAR";
            case 1: return "T_RPAR";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 291: exit_expr ::= T_LPAR T_RPAR ";
	}
}

/**
 *
 */
class Rule292 extends Rule {
	public int getNumber() { return 292; }
	public String getLhs() { return "exit_expr"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_LPAR";
            case 1: return "expr";
            case 2: return "T_RPAR";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 292: exit_expr ::= T_LPAR expr T_RPAR ";
	}
}

/**
 *
 */
class Rule293 extends Rule {
	public int getNumber() { return 293; }
	public String getLhs() { return "exit_expr"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 293: exit_expr ::= ";
	}
}

/**
 *
 */
class Rule294 extends Rule {
	public int getNumber() { return 294; }
	public String getLhs() { return "ctor_arguments"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_LPAR";
            case 1: return "function_call_parameter_list";
            case 2: return "T_RPAR";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 294: ctor_arguments ::= T_LPAR function_call_parameter_list T_RPAR ";
	}
}

/**
 *
 */
class Rule295 extends Rule {
	public int getNumber() { return 295; }
	public String getLhs() { return "ctor_arguments"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 295: ctor_arguments ::= ";
	}
}

/**
 *
 */
class Rule296 extends Rule {
	public int getNumber() { return 296; }
	public String getLhs() { return "sign"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_PLUS";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 296: sign ::= T_PLUS ";
	}
}

/**
 *
 */
class Rule297 extends Rule {
	public int getNumber() { return 297; }
	public String getLhs() { return "sign"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_MINUS";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 297: sign ::= T_MINUS ";
	}
}

/**
 *
 */
class Rule298 extends Rule {
	public int getNumber() { return 298; }
	public String getLhs() { return "common_scalar"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "sign";
            case 1: return "T_LNUMBER";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 298: common_scalar ::= sign T_LNUMBER ";
	}
}

/**
 *
 */
class Rule299 extends Rule {
	public int getNumber() { return 299; }
	public String getLhs() { return "common_scalar"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "sign";
            case 1: return "T_DNUMBER";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 299: common_scalar ::= sign T_DNUMBER ";
	}
}

/**
 *
 */
class Rule300 extends Rule {
	public int getNumber() { return 300; }
	public String getLhs() { return "common_scalar"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_LNUMBER";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 300: common_scalar ::= T_LNUMBER ";
	}
}

/**
 *
 */
class Rule301 extends Rule {
	public int getNumber() { return 301; }
	public String getLhs() { return "common_scalar"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_DNUMBER";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 301: common_scalar ::= T_DNUMBER ";
	}
}

/**
 *
 */
class Rule302 extends Rule {
	public int getNumber() { return 302; }
	public String getLhs() { return "common_scalar"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "possibly_binary";
            case 1: return "T_CONSTANT_ENCAPSED_STRING";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 302: common_scalar ::= possibly_binary T_CONSTANT_ENCAPSED_STRING ";
	}
}

/**
 *
 */
class Rule303 extends Rule {
	public int getNumber() { return 303; }
	public String getLhs() { return "common_scalar"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_LINE_C";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 303: common_scalar ::= T_LINE_C ";
	}
}

/**
 *
 */
class Rule304 extends Rule {
	public int getNumber() { return 304; }
	public String getLhs() { return "common_scalar"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_FILE_C";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 304: common_scalar ::= T_FILE_C ";
	}
}

/**
 *
 */
class Rule305 extends Rule {
	public int getNumber() { return 305; }
	public String getLhs() { return "common_scalar"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_CLASS_C";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 305: common_scalar ::= T_CLASS_C ";
	}
}

/**
 *
 */
class Rule306 extends Rule {
	public int getNumber() { return 306; }
	public String getLhs() { return "common_scalar"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_METHOD_C";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 306: common_scalar ::= T_METHOD_C ";
	}
}

/**
 *
 */
class Rule307 extends Rule {
	public int getNumber() { return 307; }
	public String getLhs() { return "common_scalar"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_FUNC_C";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 307: common_scalar ::= T_FUNC_C ";
	}
}

/**
 *
 */
class Rule308 extends Rule {
	public int getNumber() { return 308; }
	public String getLhs() { return "static_scalar"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "common_scalar";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 308: static_scalar ::= common_scalar ";
	}
}

/**
 *
 */
class Rule309 extends Rule {
	public int getNumber() { return 309; }
	public String getLhs() { return "static_scalar"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_STRING";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 309: static_scalar ::= T_STRING ";
	}
}

/**
 *
 */
class Rule310 extends Rule {
	public int getNumber() { return 310; }
	public String getLhs() { return "static_scalar"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "possibly_binary";
            case 1: return "T_DOUBLE_QUOTE";
            case 2: return "static_encaps_list";
            case 3: return "T_DOUBLE_QUOTE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 310: static_scalar ::= possibly_binary T_DOUBLE_QUOTE static_encaps_list T_DOUBLE_QUOTE ";
	}
}

/**
 *
 */
class Rule311 extends Rule {
	public int getNumber() { return 311; }
	public String getLhs() { return "static_scalar"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "possibly_binary";
            case 1: return "T_SINGLE_QUOTE";
            case 2: return "static_encaps_list";
            case 3: return "T_SINGLE_QUOTE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 311: static_scalar ::= possibly_binary T_SINGLE_QUOTE static_encaps_list T_SINGLE_QUOTE ";
	}
}

/**
 *
 */
class Rule312 extends Rule {
	public int getNumber() { return 312; }
	public String getLhs() { return "static_scalar"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_ARRAY";
            case 1: return "T_LPAR";
            case 2: return "static_array_pair_list";
            case 3: return "T_RPAR";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 312: static_scalar ::= T_ARRAY T_LPAR static_array_pair_list T_RPAR ";
	}
}

/**
 *
 */
class Rule313 extends Rule {
	public int getNumber() { return 313; }
	public String getLhs() { return "static_scalar"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "static_class_constant";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 313: static_scalar ::= static_class_constant ";
	}
}

/**
 *
 */
class Rule314 extends Rule {
	public int getNumber() { return 314; }
	public String getLhs() { return "static_class_constant"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_STRING";
            case 1: return "T_PAAMAYIM_NEKUDOTAYIM";
            case 2: return "T_STRING";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 314: static_class_constant ::= T_STRING T_PAAMAYIM_NEKUDOTAYIM T_STRING ";
	}
}

/**
 *
 */
class Rule315 extends Rule {
	public int getNumber() { return 315; }
	public String getLhs() { return "scalar"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_STRING";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 315: scalar ::= T_STRING ";
	}
}

/**
 *
 */
class Rule316 extends Rule {
	public int getNumber() { return 316; }
	public String getLhs() { return "scalar"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_STRING_VARNAME";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 316: scalar ::= T_STRING_VARNAME ";
	}
}

/**
 *
 */
class Rule317 extends Rule {
	public int getNumber() { return 317; }
	public String getLhs() { return "scalar"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "class_constant";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 317: scalar ::= class_constant ";
	}
}

/**
 *
 */
class Rule318 extends Rule {
	public int getNumber() { return 318; }
	public String getLhs() { return "scalar"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "common_scalar";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 318: scalar ::= common_scalar ";
	}
}

/**
 *
 */
class Rule319 extends Rule {
	public int getNumber() { return 319; }
	public String getLhs() { return "scalar"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "possibly_binary";
            case 1: return "T_START_HEREDOC";
            case 2: return "encaps_list";
            case 3: return "T_END_HEREDOC";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 319: scalar ::= possibly_binary T_START_HEREDOC encaps_list T_END_HEREDOC ";
	}
}

/**
 *
 */
class Rule320 extends Rule {
	public int getNumber() { return 320; }
	public String getLhs() { return "scalar"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "possibly_binary";
            case 1: return "T_DOUBLE_QUOTE";
            case 2: return "encaps_list";
            case 3: return "T_DOUBLE_QUOTE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 320: scalar ::= possibly_binary T_DOUBLE_QUOTE encaps_list T_DOUBLE_QUOTE ";
	}
}

/**
 *
 */
class Rule321 extends Rule {
	public int getNumber() { return 321; }
	public String getLhs() { return "scalar"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "possibly_binary";
            case 1: return "T_SINGLE_QUOTE";
            case 2: return "encaps_list";
            case 3: return "T_SINGLE_QUOTE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 321: scalar ::= possibly_binary T_SINGLE_QUOTE encaps_list T_SINGLE_QUOTE ";
	}
}

/**
 *
 */
class Rule322 extends Rule {
	public int getNumber() { return 322; }
	public String getLhs() { return "possibly_binary"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_BINARY";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 322: possibly_binary ::= T_BINARY ";
	}
}

/**
 *
 */
class Rule323 extends Rule {
	public int getNumber() { return 323; }
	public String getLhs() { return "possibly_binary"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_LOWER_BINARY";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 323: possibly_binary ::= T_LOWER_BINARY ";
	}
}

/**
 *
 */
class Rule324 extends Rule {
	public int getNumber() { return 324; }
	public String getLhs() { return "possibly_binary"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 324: possibly_binary ::= ";
	}
}

/**
 *
 */
class Rule325 extends Rule {
	public int getNumber() { return 325; }
	public String getLhs() { return "class_constant"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "fully_qualified_class_name";
            case 1: return "T_PAAMAYIM_NEKUDOTAYIM";
            case 2: return "T_STRING";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 325: class_constant ::= fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING ";
	}
}

/**
 *
 */
class Rule326 extends Rule {
	public int getNumber() { return 326; }
	public String getLhs() { return "static_array_pair_list"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "non_empty_static_array_pair_list";
            case 1: return "possible_comma";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 326: static_array_pair_list ::= non_empty_static_array_pair_list possible_comma ";
	}
}

/**
 *
 */
class Rule327 extends Rule {
	public int getNumber() { return 327; }
	public String getLhs() { return "static_array_pair_list"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 327: static_array_pair_list ::= ";
	}
}

/**
 *
 */
class Rule328 extends Rule {
	public int getNumber() { return 328; }
	public String getLhs() { return "possible_comma"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_COMMA";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 328: possible_comma ::= T_COMMA ";
	}
}

/**
 *
 */
class Rule329 extends Rule {
	public int getNumber() { return 329; }
	public String getLhs() { return "possible_comma"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 329: possible_comma ::= ";
	}
}

/**
 *
 */
class Rule330 extends Rule {
	public int getNumber() { return 330; }
	public String getLhs() { return "non_empty_static_array_pair_list"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "non_empty_static_array_pair_list";
            case 1: return "T_COMMA";
            case 2: return "non_empty_static_array_pair";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 330: non_empty_static_array_pair_list ::= non_empty_static_array_pair_list T_COMMA non_empty_static_array_pair ";
	}
}

/**
 *
 */
class Rule331 extends Rule {
	public int getNumber() { return 331; }
	public String getLhs() { return "non_empty_static_array_pair_list"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "non_empty_static_array_pair";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 331: non_empty_static_array_pair_list ::= non_empty_static_array_pair ";
	}
}

/**
 *
 */
class Rule332 extends Rule {
	public int getNumber() { return 332; }
	public String getLhs() { return "non_empty_static_array_pair"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "static_scalar";
            case 1: return "T_DOUBLE_ARROW";
            case 2: return "static_scalar";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 332: non_empty_static_array_pair ::= static_scalar T_DOUBLE_ARROW static_scalar ";
	}
}

/**
 *
 */
class Rule333 extends Rule {
	public int getNumber() { return 333; }
	public String getLhs() { return "non_empty_static_array_pair"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "static_scalar";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 333: non_empty_static_array_pair ::= static_scalar ";
	}
}

/**
 *
 */
class Rule334 extends Rule {
	public int getNumber() { return 334; }
	public String getLhs() { return "expr"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "pw_logical_expr_oo";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 334: expr ::= pw_logical_expr_oo ";
	}
}

/**
 *
 */
class Rule335 extends Rule {
	public int getNumber() { return 335; }
	public String getLhs() { return "variable"; }
	public int getSize() { return 5; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "base_variable_with_function_calls";
            case 1: return "T_OBJECT_OPERATOR";
            case 2: return "object_property";
            case 3: return "method_or_not";
            case 4: return "variable_properties";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 4");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 335: variable ::= base_variable_with_function_calls T_OBJECT_OPERATOR object_property method_or_not variable_properties ";
	}
}

/**
 *
 */
class Rule336 extends Rule {
	public int getNumber() { return 336; }
	public String getLhs() { return "variable"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "base_variable_with_function_calls";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 336: variable ::= base_variable_with_function_calls ";
	}
}

/**
 *
 */
class Rule337 extends Rule {
	public int getNumber() { return 337; }
	public String getLhs() { return "variable_properties"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable_properties";
            case 1: return "variable_property";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 337: variable_properties ::= variable_properties variable_property ";
	}
}

/**
 *
 */
class Rule338 extends Rule {
	public int getNumber() { return 338; }
	public String getLhs() { return "variable_properties"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 338: variable_properties ::= ";
	}
}

/**
 *
 */
class Rule339 extends Rule {
	public int getNumber() { return 339; }
	public String getLhs() { return "variable_property"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_OBJECT_OPERATOR";
            case 1: return "object_property";
            case 2: return "method_or_not";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 339: variable_property ::= T_OBJECT_OPERATOR object_property method_or_not ";
	}
}

/**
 *
 */
class Rule340 extends Rule {
	public int getNumber() { return 340; }
	public String getLhs() { return "method_or_not"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_LPAR";
            case 1: return "function_call_parameter_list";
            case 2: return "T_RPAR";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 340: method_or_not ::= T_LPAR function_call_parameter_list T_RPAR ";
	}
}

/**
 *
 */
class Rule341 extends Rule {
	public int getNumber() { return 341; }
	public String getLhs() { return "method_or_not"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 341: method_or_not ::= ";
	}
}

/**
 *
 */
class Rule342 extends Rule {
	public int getNumber() { return 342; }
	public String getLhs() { return "variable_without_objects"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "reference_variable";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 342: variable_without_objects ::= reference_variable ";
	}
}

/**
 *
 */
class Rule343 extends Rule {
	public int getNumber() { return 343; }
	public String getLhs() { return "variable_without_objects"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "simple_indirect_reference";
            case 1: return "reference_variable";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 343: variable_without_objects ::= simple_indirect_reference reference_variable ";
	}
}

/**
 *
 */
class Rule344 extends Rule {
	public int getNumber() { return 344; }
	public String getLhs() { return "static_member"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "fully_qualified_class_name";
            case 1: return "T_PAAMAYIM_NEKUDOTAYIM";
            case 2: return "variable_without_objects";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 344: static_member ::= fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects ";
	}
}

/**
 *
 */
class Rule345 extends Rule {
	public int getNumber() { return 345; }
	public String getLhs() { return "base_variable_with_function_calls"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "base_variable";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 345: base_variable_with_function_calls ::= base_variable ";
	}
}

/**
 *
 */
class Rule346 extends Rule {
	public int getNumber() { return 346; }
	public String getLhs() { return "base_variable_with_function_calls"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "function_call";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 346: base_variable_with_function_calls ::= function_call ";
	}
}

/**
 *
 */
class Rule347 extends Rule {
	public int getNumber() { return 347; }
	public String getLhs() { return "base_variable_with_function_calls"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "class_function_call";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 347: base_variable_with_function_calls ::= class_function_call ";
	}
}

/**
 *
 */
class Rule348 extends Rule {
	public int getNumber() { return 348; }
	public String getLhs() { return "base_variable"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "reference_variable";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 348: base_variable ::= reference_variable ";
	}
}

/**
 *
 */
class Rule349 extends Rule {
	public int getNumber() { return 349; }
	public String getLhs() { return "base_variable"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "simple_indirect_reference";
            case 1: return "reference_variable";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 349: base_variable ::= simple_indirect_reference reference_variable ";
	}
}

/**
 *
 */
class Rule350 extends Rule {
	public int getNumber() { return 350; }
	public String getLhs() { return "base_variable"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "static_member";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 350: base_variable ::= static_member ";
	}
}

/**
 *
 */
class Rule351 extends Rule {
	public int getNumber() { return 351; }
	public String getLhs() { return "reference_variable"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "reference_variable";
            case 1: return "T_BRACKET_OPEN";
            case 2: return "dim_offset";
            case 3: return "T_BRACKET_CLOSE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 351: reference_variable ::= reference_variable T_BRACKET_OPEN dim_offset T_BRACKET_CLOSE ";
	}
}

/**
 *
 */
class Rule352 extends Rule {
	public int getNumber() { return 352; }
	public String getLhs() { return "reference_variable"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "reference_variable";
            case 1: return "T_CURLY_OPEN";
            case 2: return "expr";
            case 3: return "T_CURLY_CLOSE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 352: reference_variable ::= reference_variable T_CURLY_OPEN expr T_CURLY_CLOSE ";
	}
}

/**
 *
 */
class Rule353 extends Rule {
	public int getNumber() { return 353; }
	public String getLhs() { return "reference_variable"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "compound_variable";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 353: reference_variable ::= compound_variable ";
	}
}

/**
 *
 */
class Rule354 extends Rule {
	public int getNumber() { return 354; }
	public String getLhs() { return "compound_variable"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_VARIABLE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 354: compound_variable ::= T_VARIABLE ";
	}
}

/**
 *
 */
class Rule355 extends Rule {
	public int getNumber() { return 355; }
	public String getLhs() { return "compound_variable"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_DOLLAR";
            case 1: return "T_CURLY_OPEN";
            case 2: return "expr";
            case 3: return "T_CURLY_CLOSE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 355: compound_variable ::= T_DOLLAR T_CURLY_OPEN expr T_CURLY_CLOSE ";
	}
}

/**
 *
 */
class Rule356 extends Rule {
	public int getNumber() { return 356; }
	public String getLhs() { return "compound_variable"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_DOLLAR_OPEN_CURLY_BRACES";
            case 1: return "expr";
            case 2: return "T_CURLY_CLOSE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 356: compound_variable ::= T_DOLLAR_OPEN_CURLY_BRACES expr T_CURLY_CLOSE ";
	}
}

/**
 *
 */
class Rule357 extends Rule {
	public int getNumber() { return 357; }
	public String getLhs() { return "dim_offset"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "expr";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 357: dim_offset ::= expr ";
	}
}

/**
 *
 */
class Rule358 extends Rule {
	public int getNumber() { return 358; }
	public String getLhs() { return "dim_offset"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 358: dim_offset ::= ";
	}
}

/**
 *
 */
class Rule359 extends Rule {
	public int getNumber() { return 359; }
	public String getLhs() { return "object_property"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "object_dim_list";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 359: object_property ::= object_dim_list ";
	}
}

/**
 *
 */
class Rule360 extends Rule {
	public int getNumber() { return 360; }
	public String getLhs() { return "object_property"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable_without_objects";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 360: object_property ::= variable_without_objects ";
	}
}

/**
 *
 */
class Rule361 extends Rule {
	public int getNumber() { return 361; }
	public String getLhs() { return "object_dim_list"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "object_dim_list";
            case 1: return "T_BRACKET_OPEN";
            case 2: return "dim_offset";
            case 3: return "T_BRACKET_CLOSE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 361: object_dim_list ::= object_dim_list T_BRACKET_OPEN dim_offset T_BRACKET_CLOSE ";
	}
}

/**
 *
 */
class Rule362 extends Rule {
	public int getNumber() { return 362; }
	public String getLhs() { return "object_dim_list"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "object_dim_list";
            case 1: return "T_CURLY_OPEN";
            case 2: return "expr";
            case 3: return "T_CURLY_CLOSE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 362: object_dim_list ::= object_dim_list T_CURLY_OPEN expr T_CURLY_CLOSE ";
	}
}

/**
 *
 */
class Rule363 extends Rule {
	public int getNumber() { return 363; }
	public String getLhs() { return "object_dim_list"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable_name";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 363: object_dim_list ::= variable_name ";
	}
}

/**
 *
 */
class Rule364 extends Rule {
	public int getNumber() { return 364; }
	public String getLhs() { return "variable_name"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_STRING";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 364: variable_name ::= T_STRING ";
	}
}

/**
 *
 */
class Rule365 extends Rule {
	public int getNumber() { return 365; }
	public String getLhs() { return "variable_name"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_CURLY_OPEN";
            case 1: return "expr";
            case 2: return "T_CURLY_CLOSE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 365: variable_name ::= T_CURLY_OPEN expr T_CURLY_CLOSE ";
	}
}

/**
 *
 */
class Rule366 extends Rule {
	public int getNumber() { return 366; }
	public String getLhs() { return "simple_indirect_reference"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_DOLLAR";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 366: simple_indirect_reference ::= T_DOLLAR ";
	}
}

/**
 *
 */
class Rule367 extends Rule {
	public int getNumber() { return 367; }
	public String getLhs() { return "simple_indirect_reference"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "simple_indirect_reference";
            case 1: return "T_DOLLAR";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 367: simple_indirect_reference ::= simple_indirect_reference T_DOLLAR ";
	}
}

/**
 *
 */
class Rule368 extends Rule {
	public int getNumber() { return 368; }
	public String getLhs() { return "assignment_list"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "assignment_list";
            case 1: return "T_COMMA";
            case 2: return "assignment_list_element";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 368: assignment_list ::= assignment_list T_COMMA assignment_list_element ";
	}
}

/**
 *
 */
class Rule369 extends Rule {
	public int getNumber() { return 369; }
	public String getLhs() { return "assignment_list"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "assignment_list_element";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 369: assignment_list ::= assignment_list_element ";
	}
}

/**
 *
 */
class Rule370 extends Rule {
	public int getNumber() { return 370; }
	public String getLhs() { return "assignment_list_element"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 370: assignment_list_element ::= variable ";
	}
}

/**
 *
 */
class Rule371 extends Rule {
	public int getNumber() { return 371; }
	public String getLhs() { return "assignment_list_element"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "list_expression";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 371: assignment_list_element ::= list_expression ";
	}
}

/**
 *
 */
class Rule372 extends Rule {
	public int getNumber() { return 372; }
	public String getLhs() { return "assignment_list_element"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 372: assignment_list_element ::= ";
	}
}

/**
 *
 */
class Rule373 extends Rule {
	public int getNumber() { return 373; }
	public String getLhs() { return "list_expression"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_LIST";
            case 1: return "T_LPAR";
            case 2: return "assignment_list";
            case 3: return "T_RPAR";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 373: list_expression ::= T_LIST T_LPAR assignment_list T_RPAR ";
	}
}

/**
 *
 */
class Rule374 extends Rule {
	public int getNumber() { return 374; }
	public String getLhs() { return "array_pair_list"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "non_empty_array_pair_list";
            case 1: return "possible_comma";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 374: array_pair_list ::= non_empty_array_pair_list possible_comma ";
	}
}

/**
 *
 */
class Rule375 extends Rule {
	public int getNumber() { return 375; }
	public String getLhs() { return "array_pair_list"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 375: array_pair_list ::= ";
	}
}

/**
 *
 */
class Rule376 extends Rule {
	public int getNumber() { return 376; }
	public String getLhs() { return "non_empty_array_pair_list"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "non_empty_array_pair_list";
            case 1: return "T_COMMA";
            case 2: return "non_empty_array_pair";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 376: non_empty_array_pair_list ::= non_empty_array_pair_list T_COMMA non_empty_array_pair ";
	}
}

/**
 *
 */
class Rule377 extends Rule {
	public int getNumber() { return 377; }
	public String getLhs() { return "non_empty_array_pair_list"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "non_empty_array_pair";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 377: non_empty_array_pair_list ::= non_empty_array_pair ";
	}
}

/**
 *
 */
class Rule378 extends Rule {
	public int getNumber() { return 378; }
	public String getLhs() { return "non_empty_array_pair"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "non_empty_array_pair_ref";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 378: non_empty_array_pair ::= non_empty_array_pair_ref ";
	}
}

/**
 *
 */
class Rule379 extends Rule {
	public int getNumber() { return 379; }
	public String getLhs() { return "non_empty_array_pair"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "expr";
            case 1: return "T_DOUBLE_ARROW";
            case 2: return "expr";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 379: non_empty_array_pair ::= expr T_DOUBLE_ARROW expr ";
	}
}

/**
 *
 */
class Rule380 extends Rule {
	public int getNumber() { return 380; }
	public String getLhs() { return "non_empty_array_pair"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "expr";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 380: non_empty_array_pair ::= expr ";
	}
}

/**
 *
 */
class Rule381 extends Rule {
	public int getNumber() { return 381; }
	public String getLhs() { return "non_empty_array_pair_ref"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "expr";
            case 1: return "T_DOUBLE_ARROW";
            case 2: return "T_AMPERSAND";
            case 3: return "variable";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 381: non_empty_array_pair_ref ::= expr T_DOUBLE_ARROW T_AMPERSAND variable ";
	}
}

/**
 *
 */
class Rule382 extends Rule {
	public int getNumber() { return 382; }
	public String getLhs() { return "non_empty_array_pair_ref"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_AMPERSAND";
            case 1: return "variable";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 382: non_empty_array_pair_ref ::= T_AMPERSAND variable ";
	}
}

/**
 *
 */
class Rule383 extends Rule {
	public int getNumber() { return 383; }
	public String getLhs() { return "encaps_list"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "encaps_list";
            case 1: return "encaps_var";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 383: encaps_list ::= encaps_list encaps_var ";
	}
}

/**
 *
 */
class Rule384 extends Rule {
	public int getNumber() { return 384; }
	public String getLhs() { return "encaps_list"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "encaps_list";
            case 1: return "T_ENCAPSED_AND_WHITESPACE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 384: encaps_list ::= encaps_list T_ENCAPSED_AND_WHITESPACE ";
	}
}

/**
 *
 */
class Rule385 extends Rule {
	public int getNumber() { return 385; }
	public String getLhs() { return "encaps_list"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 385: encaps_list ::= ";
	}
}

/**
 *
 */
class Rule386 extends Rule {
	public int getNumber() { return 386; }
	public String getLhs() { return "static_encaps_list"; }
	public int getSize() { return 2; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "static_encaps_list";
            case 1: return "T_ENCAPSED_AND_WHITESPACE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 386: static_encaps_list ::= static_encaps_list T_ENCAPSED_AND_WHITESPACE ";
	}
}

/**
 *
 */
class Rule387 extends Rule {
	public int getNumber() { return 387; }
	public String getLhs() { return "static_encaps_list"; }
	public int getSize() { return 0; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and -1");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 387: static_encaps_list ::= ";
	}
}

/**
 *
 */
class Rule388 extends Rule {
	public int getNumber() { return 388; }
	public String getLhs() { return "encaps_var"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_VARIABLE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 388: encaps_var ::= T_VARIABLE ";
	}
}

/**
 *
 */
class Rule389 extends Rule {
	public int getNumber() { return 389; }
	public String getLhs() { return "encaps_var"; }
	public int getSize() { return 4; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_VARIABLE";
            case 1: return "T_BRACKET_OPEN";
            case 2: return "encaps_var_offset";
            case 3: return "T_BRACKET_CLOSE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 3");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 389: encaps_var ::= T_VARIABLE T_BRACKET_OPEN encaps_var_offset T_BRACKET_CLOSE ";
	}
}

/**
 *
 */
class Rule390 extends Rule {
	public int getNumber() { return 390; }
	public String getLhs() { return "encaps_var"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_VARIABLE";
            case 1: return "T_OBJECT_OPERATOR";
            case 2: return "T_STRING";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 390: encaps_var ::= T_VARIABLE T_OBJECT_OPERATOR T_STRING ";
	}
}

/**
 *
 */
class Rule391 extends Rule {
	public int getNumber() { return 391; }
	public String getLhs() { return "encaps_var"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_DOLLAR_OPEN_CURLY_BRACES";
            case 1: return "expr";
            case 2: return "T_CURLY_CLOSE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 391: encaps_var ::= T_DOLLAR_OPEN_CURLY_BRACES expr T_CURLY_CLOSE ";
	}
}

/**
 *
 */
class Rule392 extends Rule {
	public int getNumber() { return 392; }
	public String getLhs() { return "encaps_var"; }
	public int getSize() { return 6; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_DOLLAR_OPEN_CURLY_BRACES";
            case 1: return "T_STRING_VARNAME";
            case 2: return "T_BRACKET_OPEN";
            case 3: return "expr";
            case 4: return "T_BRACKET_CLOSE";
            case 5: return "T_CURLY_CLOSE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 5");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 392: encaps_var ::= T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME T_BRACKET_OPEN expr T_BRACKET_CLOSE T_CURLY_CLOSE ";
	}
}

/**
 *
 */
class Rule393 extends Rule {
	public int getNumber() { return 393; }
	public String getLhs() { return "encaps_var"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_CURLY_OPEN";
            case 1: return "variable";
            case 2: return "T_CURLY_CLOSE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 393: encaps_var ::= T_CURLY_OPEN variable T_CURLY_CLOSE ";
	}
}

/**
 *
 */
class Rule394 extends Rule {
	public int getNumber() { return 394; }
	public String getLhs() { return "encaps_var_offset"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_STRING";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 394: encaps_var_offset ::= T_STRING ";
	}
}

/**
 *
 */
class Rule395 extends Rule {
	public int getNumber() { return 395; }
	public String getLhs() { return "encaps_var_offset"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_CONSTANT_ENCAPSED_STRING";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 395: encaps_var_offset ::= T_CONSTANT_ENCAPSED_STRING ";
	}
}

/**
 *
 */
class Rule396 extends Rule {
	public int getNumber() { return 396; }
	public String getLhs() { return "encaps_var_offset"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_NUM_STRING";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 396: encaps_var_offset ::= T_NUM_STRING ";
	}
}

/**
 *
 */
class Rule397 extends Rule {
	public int getNumber() { return 397; }
	public String getLhs() { return "encaps_var_offset"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "T_VARIABLE";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 397: encaps_var_offset ::= T_VARIABLE ";
	}
}

/**
 *
 */
class Rule398 extends Rule {
	public int getNumber() { return 398; }
	public String getLhs() { return "isset_variables"; }
	public int getSize() { return 1; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "variable";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 0");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 398: isset_variables ::= variable ";
	}
}

/**
 *
 */
class Rule399 extends Rule {
	public int getNumber() { return 399; }
	public String getLhs() { return "isset_variables"; }
	public int getSize() { return 3; }
    /**
     * Get the RHS.
     * @param n - the index.
     * @return the string.
     */
	public String getRhs(int n) {
	    switch (n) {
            case 0: return "isset_variables";
            case 1: return "T_COMMA";
            case 2: return "variable";
            default:   throw new ArrayIndexOutOfBoundsException(n + " not between 0 and 2");
	    }
	}
    /**
     * Get the rule as a string.
     * @return the string.
     */
	public String toString() {
	    return "Rule 399: isset_variables ::= isset_variables T_COMMA variable ";
	}
}
/**
 * A terminal rule class.
 */
class TerminalRule extends Rule {
	private String name;
	public int getNumber() { return -1; }
/**
 * Set the name.
 * @param inname - the name to set.
 */
	public TerminalRule(String inname) { this.name = inname; }
	public String getLhs() { return name; }
	public String getKind() { return "TERMINAL"; }
	public int getSize() { return 0; }
/**
 * Get the right hand side - given an index.
 * @param n - the number of the rhs
 * @return - the rhs
 */
	public String getRhs(int n) { return null; }
/**
 * Expose as a string.
 * @return - the string.
 */
	public String toString() { return "TERMINAL(" + name + ")"; }
}
